Skip to content

eagledev-am/time-management-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Releases

No releases published

Packages

 
 
 

Contributors