update question
This commit is contained in:
32
README.md
Normal file
32
README.md
Normal 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!
|
||||
@ -1,6 +1,6 @@
|
||||
# Get started
|
||||
|
||||
```sh
|
||||
|
||||
fastapi dev main.py
|
||||
uv venv
|
||||
uv run fastapi dev main.py
|
||||
```
|
||||
|
||||
@ -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
7
go-stdlib/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Instructions
|
||||
|
||||
Start the API server using the following command:
|
||||
|
||||
```sh
|
||||
go run .
|
||||
```
|
||||
@ -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)
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
# Instructions
|
||||
|
||||
Start the API server using the following command:
|
||||
|
||||
```
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
```
|
||||
open http://localhost:3000
|
||||
```
|
||||
|
||||
@ -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)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user