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 # Get started
```sh ```sh
uv venv
fastapi dev main.py uv run fastapi dev main.py
``` ```

View File

@ -5,16 +5,18 @@ from pydantic import BaseModel
class Transfer(BaseModel): class Transfer(BaseModel):
amount: int amount: int
sender: int sender: str
receiver: int receiver: str
app = FastAPI() app = FastAPI()
accounts = { accounts = {
'1': {'amount': 1000}, '1': 1000,
'2': {'amount': 1000}, '2': 1000,
} }
transactions: list[Transfer] = []
@app.post("/transfer") @app.post("/transfer")
def transfer(transfer: Transfer): def transfer(transfer: Transfer):
amount = transfer.amount 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, 2: 1000,
} }
var transactions = []Transfer{}
func main() { func main() {
fmt.Println("Starting server on port 8080") fmt.Println("Starting server on port 8080")
http.HandleFunc("/transfer", transfer) http.HandleFunc("/transfer", transfer)

View File

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

View File

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