Enterprise project tracker, tracks commits done by employees after getting assigned to a couple of projects by their managers
The only thing better than a Maven archetype is a repo you can fork with everything already setup. Skip the documentation and just fork-and-code.
Delete the sample code, replace with your own and you’re good to go.
There are several ways to run a Spring Boot application on your local machine. One way is to execute the main
method in the com.selimhorri.app.pack
class from your IDE.
source ./pfa_db.sql
./mvnw clean install
java -jar target/project-tracking-sys.jar
java -Dspring.profiles.active=dev -jar target/project-tracking-sys.jar
java -Dspring.profiles.active=test -jar target/project-tracking-sys.jar
java -Dspring.profiles.active=prod -jar target/project-tracking-sys.jar
Alternatively you can use the Spring Boot Maven plugin like so:
mvn spring-boot:run
Spring Boot Starter Security default username is user
and a generated security password is printed in the console like Using generated security password: ?
Automated dependency updates done via Dependabot
To monitor and manage your application
URL | Method |
---|---|
http://localhost:8080 |
GET |
http://localhost:8080/actuator/ |
GET |
http://localhost:8080/actuator/health |
GET |
http://localhost:8080/actuator/info |
GET |
http://localhost:8080/actuator/prometheus |
GET |
http://localhost:8080/actuator/httptrace |
GET |
URL | Method | Remarks |
---|---|---|
http://localhost:8080/app |
||
http://localhost:8080/app/employees |
GET | Custom Response Headers |
http://localhost:8080/app/managers |
GET | |
http://localhost:8080/app/admins |
GET |
URL | Method | Remarks |
---|---|---|
http://localhost:8080/app/employees/employee-index |
GET | |
http://localhost:8080/app/employees/employee-show-my-commits |
GET | |
http://localhost:8080/app/employees/employee-add-commit |
GET | |
http://localhost:8080/app/employees/employee-show-all-commits |
GET | |
http://localhost:8080/app/credentials/credential-edit |
GET | |
http://localhost:8080/app/employees/employee-team |
GET |
URL | Method | Remarks |
---|---|---|
http://localhost:8080/app/managers/manager-index |
GET | |
http://localhost:8080/app/managers/manager-add-project |
GET | |
http://localhost:8080/app/managers/manager-show-commits |
GET | |
http://localhost:8080/app/managers/manager-describe-commit |
GET | |
http://localhost:8080/app/managers/manager-assign |
GET | |
http://localhost:8080/app/managers/manager-edit-project |
GET | |
http://localhost:8080/app/managers/manager-delete-project |
GET | |
http://localhost:8080/app/managers/manager-info |
GET | |
http://localhost:8080/app/managers/manager-team |
GET | |
http://localhost:8080/app/managers/manager-assigned-projects |
GET | |
http://localhost:8080/app/credentials/credential-edit |
GET |
URL | Method | Remarks |
---|---|---|
http://localhost:8080/app/admins/admin-index |
GET | |
http://localhost:8080/app/admins/employees/admin-employees-list |
GET | |
http://localhost:8080/app/admins/employees/admin-employees-add |
GET | |
http://localhost:8080/app/admins/employees/admin-employees-edit |
GET | |
http://localhost:8080/app/admins/employees/admin-employee-credentials |
GET | |
http://localhost:8080/app/admins/employees/admin-employees-isactive |
GET | |
http://localhost:8080/app/admins/employees/admin-employees-delete |
GET | |
http://localhost:8080/app/admins/departments/admin-departments-list |
GET | |
http://localhost:8080/app/admins/departments/admin-departments-edit |
GET | |
http://localhost:8080/app/admins/departments/admin-departments-delete |
GET | |
http://localhost:8080/app/admins/locations/admin-locations-list |
GET | |
http://localhost:8080/app/admins/locations/admin-locations-edit |
GET | |
http://localhost:8080/app/admins/locations/admin-locations-delete |
GET |
The project (a.k.a. project directory) has a particular directory structure. A representative project is shown below:
.
├── employees-management
├── src
│ └── main
│ └── java
│ ├── com.pfa.pack.pack
│ ├── com.pfa.pack.pack.configs
│ ├── com.pfa.pack.pack.configs.swagger
│ ├── com.pfa.pack.pack.configs.cors
│ ├── com.pfa.pack.pack.configs.twilio
│ ├── com.pfa.pack.pack.configs.modelmapper
│ ├── com.pfa.pack.pack.controllers
│ ├── com.pfa.pack.pack.controllers.api
│ ├── com.pfa.pack.pack.controllers.employee
│ ├── com.pfa.pack.pack.controllers.manager
│ ├── com.pfa.pack.pack.controllers.admin
│ ├── com.pfa.pack.pack.converters
│ ├── com.pfa.pack.pack.enums
│ ├── com.pfa.pack.pack.security
│ ├── com.pfa.pack.pack.security.
│ ├── com.pfa.pack.pack.exceptions
│ ├── com.pfa.pack.pack.exceptions.customs
│ ├── com.pfa.pack.pack.exceptions.payloads
│ ├── com.pfa.pack.pack.models
│ ├── com.pfa.pack.pack.models.entities
│ ├── com.pfa.pack.pack.models.ids
│ ├── com.pfa.pack.pack.models.dto
│ ├── com.pfa.pack.pack.models.collectionwrappers
│ ├── com.pfa.pack.pack.utils
│ ├── com.pfa.pack.pack.utils.email
│ ├── com.pfa.pack.pack.utils.sms
│ ├── com.pfa.pack.pack.utils.report
│ ├── com.pfa.pack.pack.repositories
│ └── com.pfa.pack.pack.services
│ └── com.pfa.pack.pack.services.impls
├── src
│ └── main
│ └── resources
│ └── static
│ │ ├── css
│ │ ├── js
│ └── templates
│ │ ├── admins
│ │ ├── employees
│ │ ├── managers
│ │ ├── credentials
│ │ ├── home
│ ├── application.properties
│ ├── application-dev.properties
│ ├── application-test.properties
│ ├── application-prod.properties
│ ├
│ └──
├── src
│ └── test
│ └── java
├── JRE System Library
├── Maven Dependencies
├── bin
├── logs
│ └── application.log
├── src
├── target
│ └──project-tracking-system.jar
├── mvnw
├── mvnw.cmd
├── pfa_db.sql
├── pfa_ERD.png
├── pom.xml
└── README.md
models
— to hold our entities;
repositories
— to communicate with the database;
services
— to hold our business logic;
security
— security configuration;
controllers
— to listen to the client;
resources/
- Contains all the static resources, templates and property files.
resources/static
- contains static resources such as css, js and images.
resources/templates
- contains server-side templates which are rendered by Spring.
resources/application.properties
- It contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file.
test/
- contains unit and integration tests
pom.xml
- contains all the project dependencies
This Project uses GitHub's integrated issue tracking system to record bugs and feature requests. If you want to raise an issue, please follow the recommendations below:
-- ## License