A modern, full-stack task management application built with Spring Boot and Angular.
TaskFlow is a comprehensive task management system that helps you organize and track your tasks efficiently. The application features user authentication, task creation, editing, and status management with a clean, responsive user interface.
- User Authentication: Secure signup and login functionality
- Task Management: Create, update, and delete tasks
- Task Categorization: View tasks by status (Completed, In Progress, Overdue)
- Due Date Tracking: Set due dates and times for tasks
- Notifications: Get notified before task deadlines
- Java 17
- Spring Boot 3.1
- Spring Security with JWT Authentication
- Spring Data JPA
- PostgreSQL Database
- Lombok
- Maven
- Angular 19
- Angular Material
- RxJS
- NgxMaterialTimepicker
- SCSS for styling
- Docker & Docker Compose for containerization
- Nginx for frontend serving and API proxying
- Docker and Docker Compose
- Git
- Clone the repository:
git clone https://github.com/Samuel-k276/TaskFlow.git
cd TaskFlow- Start the application with Docker Compose:
docker-compose up -d- Access the application:
- Frontend: http://localhost:4200
- Backend API: http://localhost:8080/api
- Navigate to the backend directory:
cd task-app-backend- Create a
.envfile with the following environment variables:
DB_URL=jdbc:postgresql://localhost:5432/taskdb
DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRATION=86400000
SERVER_PORT=8080
FRONTEND_URL=http://localhost:4200
- Build and run with Maven:
mvn spring-boot:run- Navigate to the frontend directory:
cd task-app-frontend- Install dependencies:
npm install- Run the development server:
npm run startPOST /api/auth/register: Register a new userPOST /api/auth/authenticate: Authenticate a user
GET /api/tasks: Get all tasks for the authenticated userGET /api/tasks/{id}: Get a specific taskPOST /api/tasks: Create a new taskPUT /api/tasks/{id}: Update an existing taskDELETE /api/tasks/{id}: Delete a task
task-app-backend/
├── src/main/java/taskapp/
│ ├── config/
│ ├── controller/
│ ├── dto/
│ ├── entity/
│ ├── exception/
│ ├── repository/
│ ├── security/
│ └── service/
└── src/main/resources/
└── application.properties
task-app-frontend/
├── src/
│ ├── app/
│ │ ├── components/
│ │ ├── config/
│ │ ├── guards/
│ │ ├── interceptors/
│ │ ├── models/
│ │ └── services/
│ ├── assets/
│ └── styles.css
└── angular.json