This project is a sample application showing how Olympic tournament data could be presented attractively. Inspired by the design of the official Olympic Games - we are not affiliated with Olympics.com.

- ๐ฏ๏ธ Introduction
- ๐ช Features
- ๐จ How can I run the project?
- ๐ User Guide for Competition Judges
โบ This project provides a modern and user-friendly alternative to the Olympic Games website. The design is heavily based on the original and was created as part of an assignment during training as an IT specialist for application development.
๐ โบ The project was developed by Yannic Drews, Yanic Doepner, and Nils Sievers and it is not affiliated with the Olympic Games. It is only a โfan-madeโ project and is intended for learning purposes.
โบ The project implemented all features that were required within the scope of the requirements specification and functional specification. These include the following features:
- ๐ Sports Results Overview: Visitors can browse competition results organized by sport. Each entry displays the athleteโs name, the represented country, and the recorded performance.
- ๐ฅ Medal Visualization: Medal wins are clearly indicated with visual icons so users can instantly recognize gold, silver, and bronze achievements.
- ๐ Country-Based Results View: Users can explore results by country through a graphical country overview and view both the medal table and all athlete performances of a selected nation.
- ๐ Medal Table & Statistics: The website provides visualized competition statistics such as medal counts, nation comparisons, and an overview of medals achieved by each country.
- ๐ Secure Judge Login: Competition judges have access to a protected login area where they can authenticate using a username and password.
- โ๏ธ Result Management: Authenticated judges can add, edit, or delete competition results for supported winter sports disciplines.
- ๐๏ธ MySQL Database Storage: All competition data and results are stored securely in a MySQL database to ensure reliable and structured data management.
- โก Real-Time Result Updates: Changes made by judges are immediately reflected on the public website so visitors always see the latest results.
- ๐ฅ Excel Data Import: The backend supports importing data from Excel files, allowing judges to load initial data sets or update existing results efficiently.
- ๐ฑ Responsive Design: The website is optimized for different screen sizes and works smoothly on desktops, tablets, and smartphones.
- ๐ Multilingual Support: The platform supports multiple languages (including German, French and English) and allows users to switch languages at any time.
- ๐ก๏ธ GDPR Compliance: The website follows GDPR requirements by including a cookie banner and proper handling of user data.
- โ 100% Unit-Test Coverage: The application is protected by comprehensive automated tests, with unit tests achieving full coverage to ensure reliability and maintainability.
โ๏ธ โบ To run the test coverage and see the results, just open a terminal in the project root folder and run the command jest.
โบ You need to have Docker Desktop installed and started.
- Run the Backend REST-API (More Details here)
- Clone the repository by using
git clone https://github.com/yannic-md/olympia-website.git - Switch to the correct folder:
cd olympia-website - Run
docker compose up --buildand wait a few minutes.- You will probaly see a
Unknown Error, but you can ignore it - docker will continue anyway.
- You will probaly see a
- Visit the page in your browser: https://localhost:4000
You only need to do that once. From now on, you can start/stop the project in the "Docker Desktop" application.
โบ Competition judges can log in or register on this website to create, edit, or delete tournament data (athletes, countries, or competition results). Alternatively, an Excel import is also available.
Go to http://localhost:4000/login and create an account by clicking the text below the input fields. A modal will open where you can choose a username and set a password. After that, you will be automatically logged in and redirected to the homepage.
On the subpage http://localhost:4000/detailed, you will find a comprehensive overview of competition results. Here you can use the respective buttons to add, update, or delete entries.
Using the โFilter & Searchโ box above, you can switch the view in the โViewโ dropdown to โAthletesโ or โCountries.โ
When you click an action button, a modal will open where the data for a country, athlete, or competition result can be edited. The data is automatically validated and then sent to the backend, and the corresponding list is dynamically updated.