https://github.com/triplee12/manager
REST API for a collaborative task management system
https://github.com/triplee12/manager
fastapi postgresql python3 task-management
Last synced: about 2 months ago
JSON representation
REST API for a collaborative task management system
- Host: GitHub
- URL: https://github.com/triplee12/manager
- Owner: triplee12
- Created: 2025-06-12T07:31:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-16T18:20:31.000Z (about 1 year ago)
- Last Synced: 2025-06-19T19:10:57.252Z (about 1 year ago)
- Topics: fastapi, postgresql, python3, task-management
- Language: Python
- Homepage:
- Size: 116 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Challenge: TaskFlow – A Collaborative Task Management API
## Objective
Build a backend REST API for a collaborative task management system (like a lightweight Asana or Trello clone) using FastAPI and SQL (SQLite or PostgreSQL). The system should support users, teams, projects, tasks, and comments, with appropriate authentication, authorization, and relational design.
## 🗂️ Functional Requirements
### * User Management
* Register new users (with hashed passwords).
* JWT-based login.
* Role-based access control (admin, member).
* Team and Project Structure
* Users can create or join teams.
* Teams can have multiple projects.
* Only team members can access their projects.
### * Tasks
* Each project has multiple tasks with:
Title, description, status (todo, in_progress, done), due date, priority.
* Assigned user(s) from the same team.
* Tasks can be filtered by status, assignee, due date range.
* Comments
* Users can comment on tasks.
* Comments are timestamped and ordered.
### * Activity Log
* Every significant action (create/update/delete task/comment) should be recorded in an activity log per project.
## 🧪 Technical Requirements
* Use FastAPI for the API layer.
* Use SQLAlchemy ORM with PostgreSQL (preferred) or SQLite.
* Secure endpoints using OAuth2 + JWT.
* Modular code structure using routers and dependency injection.
* Write at least 5 unit tests using pytest.
### * 🧠 Bonus Requirements (if time allows)
* Add WebSocket endpoint for real-time project activity feed.
* Add rate limiting per user using a FastAPI middleware.
* Deployable Dockerfile with docker-compose to run the app and DB locally.
## 📦 Deliverables
* Complete FastAPI project code in a GitHub repo (or zipped).
* API documentation using FastAPI’s OpenAPI auto-docs.
* Sample DB seeding script or test users/tasks for quick testing.
* (Optional) Postman collection or curl commands to demo endpoints.