A full-stack team task management app built with React (frontend) and Express (backend).
No database required — uses in-memory storage.
⚠️ Note: Data resets on server restart. For production use, consider adding a database like MongoDB or PostgreSQL.
team-task-manager/
├── backend/ # Express API server
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── db.js # In-memory database
│ ├── server.js
│ └── .env.example
└── frontend/ # React app
├── public/
├── src/
│ ├── components/
│ ├── context/
│ └── pages/
└── .env.example
cd backend
npm install
cp .env.example .env # Edit JWT_SECRET if you want
npm run dev # Runs on http://localhost:5000cd frontend
npm install
npm start # Runs on http://localhost:3000The frontend
package.jsonhas aproxyset tohttp://localhost:5000, so API calls work automatically in development.
This project is pre-configured for Railway with railway.json in both folders.
- Push this repo to GitHub
- Go to railway.app → New Project → Deploy from GitHub repo
- Add two services — one for
backend/, one forfrontend/ - For each service, set the Root Directory to
backendorfrontend - Set environment variables:
Backend service:
PORT=5000
JWT_SECRET=some_strong_random_secret
Frontend service:
REACT_APP_API_URL=https://<your-backend-service>.up.railway.app
- User registration & login (JWT auth)
- Create and manage projects
- Add team members (Admin / Member roles)
- Create, assign, and track tasks
- Task statuses:
Todo → In Progress → Review → Done - Dashboard with stats
- My Tasks view
| Method | Route | Description |
|---|---|---|
| POST | /api/auth/register |
Register |
| POST | /api/auth/login |
Login |
| GET | /api/auth/me |
Current user |
| GET | /api/projects |
List my projects |
| POST | /api/projects |
Create project |
| GET | /api/projects/:id |
Get project |
| PUT | /api/projects/:id |
Update project (Admin) |
| DELETE | /api/projects/:id |
Delete project (Admin) |
| POST | /api/projects/:id/members |
Add member (Admin) |
| DELETE | /api/projects/:id/members/:userId |
Remove member (Admin) |
| GET | /api/projects/:id/tasks |
Get project tasks |
| POST | /api/tasks |
Create task |
| GET | /api/tasks/my |
My tasks |
| GET | /api/tasks/:id |
Get task |
| PUT | /api/tasks/:id |
Update task |
| DELETE | /api/tasks/:id |
Delete task (Admin) |
| GET | /api/users/search?email= |
Find user by email |
| GET | /api/users/dashboard |
Dashboard stats |