Scrum_ally is a web application designed for project management. This project is a multi-module app, built with Spring Boot and Angular. It can be built into a single jar file using Maven.
The project currently supports creating and managing tasks for multiple projects.
Some of the more interesting technologies used are:
- REST API
- JWT token-based authentication
- Role-based access to resources
- Flyway migrations
- Material design
- Pagination
To clone this repository, execute the following in the command line:
$ git clone https://github.com/little-pinecone/scrum-ally.git
You can build the application with:
$ mvn clean install
To run fronted separately, on localhost:4200
, got to the /frontend/src/main/angular
directory and run:
$ npm start
Use the attached docker-compose.yml
file and run:
$ docker-compose up -d
- Migrations are executed by Flyway.
- An example file:
backend/src/main/resources/db/migration/V1_2020_03_5.sql
will apply the first migration in project. - To generate an sql file based on the updated entities, run:
$ mvn test -Dspring.profiles.active=dbschema,development
POST Endpoint:
http://localhost:8080/api/users
Body:
{
"userCredentials": {
"username": "user",
"password": "test"
}
}
Run all backend tests with the following command in the root directory:
$ mvn test
Run all frontend tests with the following command in the frontend/src/main/angular
directory:
$ ng test
If you want to generate a SonarQube report locally:
- set up Sonar Qube
- run:
$ mvn clean verify sonar:sonar -Pcode-coverage
To see the API docs generated by Swagger build and run the application, and visit the http://localhost:8080/swagger-ui/ link in your browser.
- Copy this code to the
Tests
tab for the mutable requests:
var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN");
pm.globals.set('csrftoken', xsrfCookie.value);
- Add the
X-XSRF-TOKEN
header that will use the{{csrftoken}}
variable:
- HATEOAS
- Managing project members, sharing projects
- Custom messages for successful and failed operations
- Breadcrumbs
This project is licensed under the Unlicense - see the license details.