A full-stack Tasks Management web application built with FastAPI, React, and MongoDB β the FARM Stack π. This app allows users to register, log in, create, update, and delete task lists (individual tasks), with a sleek UI and secure backend.
- Frontend: React (Vite), TailwindCSS
- Backend: FastAPI
- Database: MongoDB (with Motor async driver)
- Auth: JWT-based authentication
- Validation: Pydantic v2
- Environment Management:
pydantic-settings
,.env
support
- Register / Login / Logout
- JWT Access Token Authentication
- Secure password hashing (using
passlib
)
- CRUD operations: Create, Read, Update, Delete
- Assign deadlines and statuses
- Search & filter functionality
- FastAPI-powered RESTful API
- Async MongoDB connection (Motor)
- Clean schema validation with Pydantic v2
- CORS enabled for frontend/backend communication
FARM-stack-tasks-management-app/
β
βββ backend/ # FastAPI backend
β βββ main.py # Entry point
β βββ db/ # MongoDB config
β βββ models/ # MongoDB models
β βββ schemas/ # Pydantic schemas
β βββ services/ # Business logic
β βββ routes/ # API routes
β βββ core/ # Config, security, etc.
β
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page-level views
β β βββ services/ # API calls
β β βββ App.tsx
β
βββ .env # Environment variables
βββ requirements.txt # Python packages
βββ README.md
git clone https://github.com/your-username/FARM-stack-tasks-management-app.git
cd FARM-stack-tasks-management-app
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
mongo_uri=mongodb://mongo:mongo@localhost:27017/tasks_management_db?authSource=admin
mongo_db=tasks_management_db
secret_key=881d54fb021110ba68d1eaaab1dd2df4901b58ee329b065844bfc1c6d014f3b0
algorithm=HS256
access_token_expire_minutes=3600
VITE_BACKEND_APP_API_URL=http://localhost:8000
fastapi dev backend/main.py
cd frontend
pnpm install # or npm / yarn
pnpm dev # or npm run dev
FastAPI provides interactive docs:
- Swagger UI: http://localhost:8000/docs
- Passwords are hashed with bcrypt
- JWT access tokens with expiry
- Secure input validation via Pydantic v2
- CORS enabled for frontend/backend communication
- MongoDB Compass β GUI for managing your MongoDB collections
- Thunder Client / Postman β API testing
- Docker β For containerized setup
- Add task categories/labels
- Drag and Drop for task-list UI
- Role-based user permissions (admin, user)
- User invitations for task list
- Email reminder for overdue tasks
- Docker support for full-stack deployment
PRs and issues are welcome! If you'd like to add a feature or fix a bug, feel free to fork and submit a pull request.
Kei-K23 β Software Developer
Built with β€οΈ using FARM stack π