Untitled

mail@pastecode.io avatar
unknown
plain_text
16 days ago
1.5 kB
3
Indexable
Never
## Fitle chat app challenge
```

Run via docker-compose:
```bash
docker-compose up
```

Run tests:
```bash
pytest backend/tests
```

Components:
- [x] Frontend
- [x] Backend
- [x] Database

## Backend

### Technologies
- FastAPI
- SQLAlchemy
- Pydantic
- Uvicorn
- Docker
- PostgreSQL
- Alembic
- Pytest

## Frontend

### Technologies
- React
- Axios
- TailwindCSS
- Shadcn
- Radix
- React Hooks
- React Router

## Features

- Implemented both frontend and backend and sperated them into two different folders. Wired them together using docker-compose.
- Implemented a RESTful API for the chat app using FastAPI, SQLAlchemy, and PostgreSQL.
- Implemented a basic chat interface using React, TailwindCSS, and Shadcn.
- Added a basic chat interface to the frontend.
- Added basic authentication to the chat app.
- Chat persists in the database. (chat persistence)
- Each user message is sent to the backend with the entire chat history in a series of alternate "user" and "agent" messages. (400 Bad Request if not the case)
- Agent's replies can be static content.
- Text can appear in a chat display.
- Implement integration tests for the backend using pytest.

## Improvements

- Add unit tests for the codebase.
- Utilize Pydantic validation more in the backend.
- Cover more test cases / edge cases in the backend.
- Add linting and formatting to the codeback and also a precommit hook.
- Utilize a state management library on FE like Redux for better state management.
- Enhance on the DB schema design.
- More generic error handling on the FE.
Leave a Comment