Astra is a collaborative project management tool where users can define projects, as well as tasks and subtasks, which allow users to track their progress. Projects can also be shared with other memebers, allowing for collaborative project management across teams.
Sling is built on an underlying microservices architecture. For technical speficiations, see the Built With section.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Astra is fully containerized using Docker and docker-compose, which means that the following requirements are the only ones needed in order to build the project:
Docker 18.0+
Docker-Compose 1.23+
Due to Astra's containerization, building and running the project is as simple as executing the following command:
docker-compose up --build
Back-end tests are managed using Maven.
You can run unit tests with the following command:
mvn test
Similarly, integration tests are run using:
mvn verify
Front-end tests are managed using npm, and can be run using:
npm test
As a general overview, the system follows a microservices architecture. All services are containerized in order to ensure that the application runs quickly and reliably from one computing environment to another.
The following tools and frameworks are used in this project:
- React - Front-end Framework
- Redux - Application State Management
- Semantic UI React Styled Components
- Java Spring Suite - Backend Services
- Netflix Zuul - API Gateway
- Netflix Eureka - Service Discovery
- Spring Security - Authentication & Authorization
- Spring Data - Database Access
- Maven - Dependency Management & Build Tool
- MongoDB - Data Storage
- MongoDB Atlas - Hosted Databases
- Docker - Service Containerization
- Docker-Compose - Running Multi-Container Docker Applications
Please read CONTRIBUTING.md for details on the process for submitting pull requests to this project.
- Erik Andersson - [email protected]
- Erik Andersson - [email protected]
- Elin Larsson - [email protected]
This project is currently not under any license
This project started as part of the course TDDD27 - Advanced Web Programming at Linköping University. So a big thanks is due to all TDDD27 course assistants!