<<<<<<< HEAD
=======
Java full-stack assessment project for Suraj Gupta.
This app lets teams create projects, assign members, create tasks, and track task progress with role-based access control for Admin and Member users.
- Signup and login
- Token-based authentication
- Admin and Member role access
- Project and team member management
- Task creation, assignment, status updates, and due dates
- Dashboard summary for total, pending, in-progress, completed, and overdue tasks
- File-backed NoSQL-style database stored in
data/team-task-manager.json - Single deployable Java app serving both REST APIs and frontend
- Java 23
- Java built-in HTTP server
- HTML, CSS, JavaScript
- File-backed JSON database
- Docker and Railway-ready configuration
Admin:
Email: admin@taskmanager.dev
Password: admin123
Member:
Email: member@taskmanager.dev
Password: member123
./scripts/run.shThen open:
http://localhost:8080
mkdir -p out
javac -d out $(find src/main/java -name "*.java")
java -cp out com.suraj.taskmanager.AppAuthentication:
POST /api/auth/signupPOST /api/auth/loginGET /api/me
Dashboard:
GET /api/dashboard
Projects:
GET /api/projectsPOST /api/projectsAdmin onlyPUT /api/projects/{id}Admin onlyDELETE /api/projects/{id}Admin onlyPOST /api/projects/{id}/membersAdmin onlyDELETE /api/projects/{id}/members/{userId}Admin only
Tasks:
GET /api/tasksPOST /api/tasksAdmin onlyPUT /api/tasks/{id}Admin onlyPATCH /api/tasks/{id}/statusAdmin or assigned memberDELETE /api/tasks/{id}Admin only
Users:
GET /api/users
- Push this project to GitHub.
- Create a new Railway project from the GitHub repository.
- Railway will use the included
Dockerfile. - The app reads Railway's
PORTenvironment variable automatically.