Realtime team collaboration app for projects, kanban planning, files, notifications, and analytics.
- Frontend: https://yourusername.github.io/team-task-manager
- Backend: https://your-railway-backend.up.railway.app
- API docs: https://your-railway-backend.up.railway.app/docs
- Frontend: React, Vite, Tailwind CSS, React Router, Recharts, Firebase Auth
- Backend: FastAPI, SQLAlchemy, Alembic, PostgreSQL
- Realtime: FastAPI WebSockets
- File storage: Storj S3-compatible object storage
- Email and notifications: SendGrid, APScheduler
- Deployment: GitHub Pages, Railway, Docker, docker-compose
- Firebase authentication with Google and email/password login
- Project and membership management with admin/member role enforcement
- Drag-and-drop kanban board with optimistic updates
- Realtime task and comment updates over WebSockets
- Storj-backed file uploads for task attachments and avatars
- Activity logging for task, comment, and membership changes
- In-app notifications with unread state and polling
- Dashboard analytics for task status, workload, overdue work, and activity
- Clone the repository.
- Copy
backend/.env.exampleintobackend/.env. - Copy
frontend/.env.production.exampleintofrontend/.env.productionand set theVITE_*values. - Build the frontend locally so nginx can serve
frontend/dist. - Start the stack:
docker-compose up --build- Open:
- Frontend:
http://localhost:5173 - Backend docs:
http://localhost:8000/docs
- Backend deploy target is Railway with
/backendas the root directory. - Add a PostgreSQL plugin in Railway so
DATABASE_URLis provided automatically. - Set every backend env var from the PRD before first boot.
- Run
alembic upgrade headfrom the Railway console after deploy. - Frontend deploy target is GitHub Pages using
HashRouterandgh-pages. - Rebuild and deploy the frontend after updating
VITE_API_URL,VITE_WS_URL, and Firebase values.
- Add screenshots here after deploy.