Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Tasks Management Application

A comprehensive Tasks Management Application built using Spring Boot and Java, designed to streamline task assignment, tracking, and user management. This project demonstrates the implementation of a robust backend architecture with role-based access control, JWT-based authentication, and RESTful APIs.

Features

  • User Management:
    • User registration and login with role-based access (e.g., Admin, User).
    • Secure password handling.
  • Task Management:
    • Create, update, delete, and retrieve tasks with priority levels.
    • Assign tasks to specific users.
  • Authentication & Security:
    • JWT-based authentication for secure access.
    • Role-based authorization for endpoints.
    • CORS configuration for cross-origin requests.
  • Exception Handling: Global exception handling for consistent error responses.
  • Validation: Request validation using DTOs and annotations.
  • Modular Design: Clear separation of concerns with controllers, services, repositories, and entities.

Tech Stack

  • Backend: Spring Boot, Java
  • Database: MySQL (or any JPA-compatible database)
  • Security: Spring Security, JWT
  • Build Tool: Maven

Project Structure

  • Controller Layer: Handles HTTP requests and maps them to appropriate services.
  • Service Layer: Contains business logic for tasks and user management.
  • Repository Layer: Interfaces with the database using Spring Data JPA.
  • Entity Layer: Defines the data models for tasks and users.
  • Security Layer: Implements authentication and authorization mechanisms.

API Endpoints

Authentication

  • POST /api/auth/register: Register a new user.
  • POST /api/auth/login: Authenticate a user and generate a JWT token.

Task Management

  • GET /api/tasks: Retrieve all tasks.
  • POST /api/tasks: Create a new task.
  • PUT /api/tasks/{id}: Update an existing task.
  • DELETE /api/tasks/{id}: Delete a task.

Prerequisites

  • Java 17 or higher
  • Maven 3.8+
  • MySQL database (or any JPA-compatible database)

How to Run

  1. Clone the repository:
    git clone [https://github.com/your-username/tasks-management-app.git\](https://github.com/your-username/tasks-management-app.git)

  2. Navigate to the project directory:
    cd tasks-management-app/backend

  3. Configure the database:
    Update the application.properties file with your database credentials.

  4. Build the project:
    ./mvnw clean install

  5. Run the application:
    ./mvnw spring-boot:run

  6. Access the application:
    The backend API will be running at http://localhost:8080.

Database Schema

Users Table

  • id: Primary key
  • username: Unique username
  • password: Encrypted password
  • role: User role (e.g., Admin, User)

Tasks Table

  • id: Primary key
  • title: Task title
  • description: Task description
  • priority: Task priority (e.g., HIGH, MEDIUM, LOW)
  • assignedTo: User assigned to the task (Foreign Key to Users.id)

Future Enhancements

  • Add a front-end interface for better user interaction.
  • Implement task notifications and reminders.
  • Integrate with third-party tools like Slack or email services.
  • Add unit and integration tests for better coverage.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A comprehensive Tasks Management Application built using Spring Boot and Java, designed to streamline task assignment, tracking, and user management. This project demonstrates the implementation of a robust backend architecture with role-based access control, JWT-based authentication, and RESTful APIs.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages