This repository contains the source code for a parallel and distributed systems project developed at Hochschule Esslingen. The project is a Todo Application which allows you to manage your daily tasks. It incorporates a Spring Boot backend, MongoDB for the database, a React frontend and Docker is used for containerization. It also incorporates OpenTelemetry and Jaeger for observability.
Before running the application, ensure that you have the following prerequisites installed:
- Java Development Kit (JDK)
- Spring Boot framework
- Docker for containerization
The project is organized as follows:
pds-project-23
: Root directorytodo
: Backend source codedatabase
: Database dockerfilesrc
: Source codetarget
: Build artifacts
frontend
: Frontend source code
- URL:
/api/v1/todos
- HTTP Method: GET
- Description: Retrieve a list of all TODO items.
- URL:
/api/v1/todos/{id}
- HTTP Method: GET
- Description: Retrieve a specific TODO item by its ID.
- URL:
/api/v1/todos/{title}
- HTTP Method: POST
- Description: Create a new TODO item with the given title.
- URL:
/api/v1/todos/{id}/{title}
- HTTP Method: PUT
- Description: Update an existing TODO item with the specified ID by setting its title to the new value.
- URL:
/api/v1/todos/{id}
- HTTP Method: DELETE
- Description: Delete a TODO item with the specified ID.
The application uses a data model for TODO items with the following attributes:
id
(String): The unique identifier of the TODO item.title
(String): The title or description of the TODO item.description
(String): Additional details about the TODO item.completed
(Boolean): Indicates whether the TODO item is completed.created
(LocalDateTime): The date and time when the TODO item was created.
- Backend running on port:
8080
- Frontend running on port:
3000
- MongoDB database running on port:
8081
- JaegerUI running on port:
16686
To run the application, follow these steps:
- Clone this repository to your local machine.
- Build and run the project using a Java IDE or the command line.
- Navigate to the root directory of the cloned repository where the
docker-compose.yaml
file is located. - Open a terminal or command prompt.
- Run the following command to start the services:
docker-compose up -d