Skip to content

Time managemet api provide a flexable way to manage your tasks and projects

License

Notifications You must be signed in to change notification settings

eagledev-am/time-management-api

Repository files navigation

Time Managemet Api

The Time Management System API is designed to help users effectively organize and manage their tasks and projects. Key features include:

  • Task Management: The core unit where users define and track their activities and goals.
  • Project Collaboration: Users can create projects to manage related tasks. Admins and managers can assign team members, encouraging collaborative work.
  • Task Categorization: users can organize tasks into custom categories for better task prioritization and tracking.
  • Communication: Task discussions are facilitated through comments and replies, allowing for detailed communication between project members.
  • File Sharing: Members can attach files to tasks and projects, centralizing necessary resources and documentation.
  • Notifications: Keeps users informed about task updates, comments, and project changes through a notification system.

Table Of Contents

Technologies

  • Spring boot
  • Spring data jpa
  • Spring security with JWT
  • Spring Email
  • Realtime notifications using Websocket
  • MySQL
  • Mapstruct (mapping)
  • Swagger
  • Maven
  • Docker

Prerequisites

  • Java ( JDK )
  • MySQL database
  • Maven
  • Postman or a similar tool for API testing
  • Docker (optional)

installation

Run with maven

1- Clone Repo

git clone https://github.com/eagledev-am/time-management-api.git

2- Create env.properities file in the root directory of the project


Important

  • You can Get your App Password using this Link
  • Copy the next properities to your env file

# db info
DB_USERNAME=YOUR_DB_USERNAME
DB_PASSWORD=YOUR_DB_PASSWORD

# email
MAIL_USERNAME=YOR_EMAIL
MAIL_PASSWORD=GOOGLE_APP_PASSWORD

# secret key
SECRET_KEY=YOUR_SECRET_KEY


3- Open cmd in the project dir and place this commands :

  • Build the Spring Boot Application
mvn clean package
  • Run the project
 ./mvnw spring-boot:run

Run With Docker

Note

make sure that docker is running. Open a cmd in the root directory of the project and place the next command.


  • Build the Spring Boot Project
mvn clean package
  • Start the Services with Docker Compose
docker-compose up --build
  • Verify Everything is Running
docker-compose ps
  • To stop and remove all containers
docker-compose down

Important

  • The Project is Running in the port : 8080
  • Now, Spring Boot application should be running and accessible via http://localhost:8080.
  • Use Swagger ui to discover documentation of project http://localhost:8080/swagger-ui/index.html

Test

Run In Postman

ERD Digram

erd

License

This project is licensed under MIT license. See LICENSE for details.