update question

This commit is contained in:
2025-07-10 05:48:23 +08:00
parent f8702ac1b9
commit 9c49adbaf1
7 changed files with 55 additions and 11 deletions

32
README.md Normal file
View File

@ -0,0 +1,32 @@
# Junior Backend Engineer Interview
Imagine that you're building a fintech system. You're now building a small microservice that allow people to send money to each other.
## Instructions
1. Checkout into a new git branch with name like `YYYY-MM-DD-nickname`
1. Navigate into any language directory you're comfortable with
1. Implement the `POST /transfer` API endpoint that allows you to transfer money from one account to another.
The account balance has to reflect the new balance after transfer for both accounts and the transaction has to be recorded.
Example request look like below:
```
curl -X POST http://localhost:3000/transfer \
-H "Content-Type: application/json" \
-d '{"amount": 100, "sender": "1", "receiver": "2"}'
```
1. Implement a new API endpoint `GET /all-transactions` that shows all transactions in the system.
1. Commit & push your changes to the git upstream.
Bonus points:
- Implement the requests validation
- Handle errors appropriately
Good luck!

View File

@ -1,6 +1,6 @@
# Get started
```sh
fastapi dev main.py
uv venv
uv run fastapi dev main.py
```

View File

@ -5,16 +5,18 @@ from pydantic import BaseModel
class Transfer(BaseModel):
amount: int
sender: int
receiver: int
sender: str
receiver: str
app = FastAPI()
accounts = {
'1': {'amount': 1000},
'2': {'amount': 1000},
'1': 1000,
'2': 1000,
}
transactions: list[Transfer] = []
@app.post("/transfer")
def transfer(transfer: Transfer):
amount = transfer.amount

7
go-stdlib/README.md Normal file
View File

@ -0,0 +1,7 @@
# Instructions
Start the API server using the following command:
```sh
go run .
```

View File

@ -18,6 +18,8 @@ var accounts = map[int]int{
2: 1000,
}
var transactions = []Transfer{}
func main() {
fmt.Println("Starting server on port 8080")
http.HandleFunc("/transfer", transfer)

View File

@ -1,8 +1,8 @@
# Instructions
Start the API server using the following command:
```
npm install
npm run dev
```
```
open http://localhost:3000
```

View File

@ -8,6 +8,8 @@ const accounts = {
'2': {amount: 1000},
}
const transactions = []
app.post('/transfer', async (c) => {
const body = await c.req.json();
const { amount, sender, receiver } = body;
@ -23,7 +25,6 @@ app.post('/transfer', async (c) => {
}
console.log('transfer', transfe);
return c.json(transfer)
})