Table of contents
Open Table of contents
Introduction
This is my technical solution template. You can use this template for your personal projects or for your team projects. This template is designed to help you to describe your technical solution in a structured way.
Refrences and links
Important Features
- Feature 1
- Feature 2
- Feature 3
Notes:
Add any notes here if you can’t describe the feature in one line.
User’s Flow
Flow 1
Pausing the flow here…
Flow 2
Pausing the flow here…
Entities
Entity 1
- attribute 1: type, required or optional, should be unique, description 1
- attribute 2: type, required or optional, should be unique, description 2
Notes:
Add any notes here if you can’t describe the entity in one line.
Entity 2
- attribute 1
Relationships between entities
- Relationship 1
Notes:
Add any notes here if you can’t describe the relationship in one line.
DataFlow(optional)
Flow 1
Pausing the flow here…
Flow 2
Pausing the flow here…
Database Design
Which database you want to use?
- PostgreSQL
- MySQL
- Some others…
Table 1
CREATE TABLE table1 (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Notes:
- consider adding indexes
- consider adding partitioning
- consider the number of rows and the size of the table
Table 2
CREATE TABLE table2 (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Notes:
- consider adding indexes
- consider adding partitioning
- consider the number of rows and the size of the table
API Design
Service 1
Fast Example
POST /api/endpoint1
Content-Type: application/json
{
"key1": "value1",
"key2": "value2"
}
Success response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"key1": "value1",
"key2": "value2"
}
Failed response:
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"code": "ErrCode"
}
Paramerters
Request
- key1: (type), required|optional, description
- key2: (type), required|optional, description
Response
- key1: (type), description
- key2: (type), description
Notes
- Authentication needs?
- Register permissions?
- Internalization needed?
- OTP needed?
Add any notes here if you think it’s important.
Service 2
…
Service 3
…
Related
- Service1 @assignee [due date]
- Feature 2 @assignee [due date]
- Database is ready? @assignee [due date]
- Repository is ready? @assignee [due date]
- others…
Notes:
- You should make sure that the infrastructure is ready before starting the implementation.
Error Codes
- ErrCode1: description
- ErrCode2: description
- ErrCode3: description
Notes:
Add any notes here if you can’t describe the error code in one line.
Additional Checkings
- Check the performance
- Check the security
- Check the scalability
- others…
Notes:
- Add any notes here if you can’t describe the checking in one line.
Markdown Template
## Introduction
This is my technical solution template. You can use this template for your personal projects or for your team projects. This template is designed to help you to describe your technical solution in a structured way.
### Refrences and links
- [PRD](#_link_to_prd_)
- [Design](#_link_to_design_)
- [Related Service1](#_link_to_service1)
- [Related Service2](#_link_to_service2)
### Important Features
- Feature 1
- Feature 2
- Feature 3
Notes:
add any notes here if you can't describe the feature in one line.
### User's Flow
#### Flow 1
Pausing the flow here...
#### Flow 2
Pausing the flow here...
## Entities
### Entity 1
- attribute 1: type, required or optional, should be unique, description 1
- attribute 2: type, required or optional, should be unique, description 2
Notes:
Add any notes here if you can't describe the entity in one line.
### Entity 2
- attribute 1
### Relationships between entities
- Relationship 1
Notes:
Add any notes here if you can't describe the relationship in one line.
## DataFlow(optional)
### Flow 1
Pausing the flow here...
### Flow 2
Pausing the flow here...
## Database Design
### Which database want to use?
- [ ] PostgreSQL
- [ ] MySQL
- [ ] Some others...
### Table 1
CREATE TABLE table1 (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Notes:
- consider adding indexes
- consider adding partitioning
- consider the number of rows and the size of the table
### Table 2
CREATE TABLE table2 (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Notes:
- consider adding indexes
- consider adding partitioning
- consider the number of rows and the size of the table
## API Design
### Service 1
#### Fast Example
POST /api/endpoint1
Content-Type: application/json
{
"key1": "value1",
"key2": "value2"
}
Success response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"key1": "value1",
"key2": "value2"
}
Failed response:
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"code": "ErrCode"
}
#### Paramerters
##### Request
- key1: (type), required|optional, description
- key2: (type), required|optional, description
##### Response
- key1: (type), description
- key2: (type), description
#### Notes
- [ ] Authentication needs?
- [ ] Register permissions?
- [ ] Internalization needed?
- [ ] OTP needed?
add any notes here if you think it's important.
### Service 2
...
### Service 3
...
## Related
- [ ] [Service1](_link_to_service1) @assignee [due date]
- [ ] [Feature 2](_link_to_service2) @assignee [due date]
- [ ] Database is ready? @assignee [due date]
- [ ] Repository is ready? @assignee [due date]
- [ ] others...
Notes:
- You should make sure that the infrastructure is ready before starting the implementation.
## Error Codes
- ErrCode1: description
- ErrCode2: description
- ErrCode3: description
Notes:
Add any notes here if you can't describe the error code in one line.
## Additional Checkings
- [ ] Check the performance
- [ ] Check the security
- [ ] Check the scalability
- [ ] others...
Notes:
- Add any notes here if you can't describe the checking in one line.