Skip to content
Snippets Groups Projects
README.md 3.71 KiB
Newer Older
Jan Pokorný's avatar
Jan Pokorný committed
# Sprachschulsystem

*PA165 course project at FI MUNI Spring 2023.*
Jan Pokorný's avatar
Jan Pokorný committed

# About Project
Jan Pokorný's avatar
Jan Pokorný committed

- **Name**: Language school
- **Technologies**: Java 17, Spring, Maven, ...
- **Developers**:
    - Dominika Zemanovičová *@xzemanov*
    - Martin Gargalovič *@xgargal*
    - Jan Pokorný *@xpokorn8*
    - Ester Vilímková - _Project Leader_ *@xvilimk*
- **Assigment**:
    - Create a system for language school lecture management. Each lecture can occur on a given day and time and is related to some course. The course is defined by its (unique) name, language and proficiency level. However, each lecture will be independent. That means that each lecture can have a different topic. Different lecturers can give it, and an arbitrary number of students can enrol. Each lecturer will have a name, surname, and record of taught languages. In addition, the lecturer will indicate that they are a native speaker. Exercises can be prepared for each course to allow the students to learn the language. Each student can pick the exercises depending on the levels of difficulty.
Jan Pokorný's avatar
Jan Pokorný committed


- **Running the modules using docker-compose**:

    ```console
    cd ./application
    mvn clean install
    docker-compose build --parallel
    docker-compose up
    ```

- **Running the modules using docker**:
    ~~~console
   sudo docker run -d -p 5001:5001 xpokorn8/sprachschulsystem:certificate &&
   sudo docker run -d -p 5002:5002 xpokorn8/sprachschulsystem:exercise &&
   sudo docker run -d -p 5000:5000 xpokorn8/sprachschulsystem:language-school &&
   sudo docker run -d -p 5003:5003 xpokorn8/sprachschulsystem:mail
    ~~~

# Metrics and Monitoring Dashboards
Our application uses Prometheus and Grafana to collect metrics and display them.
By running the app using commands for Running the modules using docker-compose mentioned above
Prometheus and Grafana containers are also launched. 

You can find the **Prometheus** interface on
http://localhost:9090

You can find **Grafana** interface on http://localhost:3000<br />
The credentials are:<br />
**username:** admin <br />
**password:** admin <br />

In Grafana interface, you can import various dashboards. Our team used and tested https://grafana.com/grafana/dashboards/3662-prometheus-2-0-overview/ board.<br />
To import the dashboard, follow steps bellow:

Jan Pokorný's avatar
Jan Pokorný committed
![Import](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/M3-observability/docs/grafana01.png)
Select **+** and **Import** in left menu of the Grafana interface.

Jan Pokorný's avatar
Jan Pokorný committed
![3662 Dashboard](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/M3-observability/docs/grafana02.png)
Insert **3662** into **Import via grafana.com** and click **Load**.

Jan Pokorný's avatar
Jan Pokorný committed
![Prometheus Datasource](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/M3-observability/docs/grafana03.png)
Select **Prometheus** in the **prometheus** combo box and click **Import**.

Jan Pokorný's avatar
Jan Pokorný committed
![Dashboard Displayed](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/M3-observability/docs/grafana04.png)
The dashboard with metrics data will be displayed.
# Project Description
Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed
Sprachschulsystem is a web-based application that aims to simplify and streamline the management of language school lectures. The system is designed to provide an easy-to-use interface that allows language schools to manage lectures, courses, lecturers, exercises, and students.
Jan Pokorný's avatar
Jan Pokorný committed

## Roles
Jan Pokorný's avatar
Jan Pokorný committed

System has three authorization roles - **Lecturer**,  **Student** and **Admin**.
Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed
## Module services
Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed
- **module-language-school**
- **module-certificate**
- **module-exercice**
- **module-mail**
Jan Pokorný's avatar
Jan Pokorný committed

# Diagrams
Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed
DTO Class Diagram:
![Class Diagram](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/main/docs/ClassDiagram.png)
Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed

Jan Pokorný's avatar
Jan Pokorný committed
Use-case Diagram:
![UseCase Diagram](https://gitlab.fi.muni.cz/xpokorn8/sprachschulsystem/-/raw/main/docs/UseCaseDiagram.png)