Skip to content

Introducing My Technical Solution Template

Published: at 11:30 AM

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.

Important Features

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

Notes:

Add any notes here if you can’t describe the entity in one line.

Entity 2

Relationships between entities

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?

Table 1

CREATE TABLE table1 (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Notes:

Table 2

CREATE TABLE table2 (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Notes:

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
Response

Notes

Add any notes here if you think it’s important.

Service 2

Service 3

Notes:

Error Codes

Notes:

Add any notes here if you can’t describe the error code in one line.

Additional Checkings

Notes:

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.