Aftas Sports Club, located in Mirleft, Tiznit, offers a variety of sports and activities, including Surfing, Tennis, Quad Biking, Underwater Fishing, Paragliding, and more. The club regularly organizes underwater fishing competitions across different regions of Morocco. Members can participate in these competitions by paying a fee to confirm their participation. The club manages logistics, appoints a jury to calculate results, and displays the podium.
Aflas Club aims to modernize competition management by developing a responsive web application to meet the needs of club administration and the jury.
-
As an administrator, I want to add a competition.
- Specify a unique code for the competition.
- Provide the date, start time, end time, number of participants, and location.
-
As an administrator, I want to view a list of competitions with filters (ongoing, closed).
- Filter competitions that are currently ongoing.
- Filter closed competitions.
-
As an admin, I want to register a member for a competition.
- Search for a member by number, name, or surname.
- Register a member for a competition if they are not already registered.
-
As a user, I want to record the result of a competition.
- Record the number of fishes caught during the competition.
- Confirm my participation after recording the result.
-
As a user, I want to view the podium for the top three participants in the competition.
- View the podium after the competition ends.
- Use Spring Boot to develop the API.
- Use Liquibase for managing db
- Organize the application into layers.
- Data validation is mandatory.
- Centralized exception handling (RestControllerAdvice).
- Implement pagination for search results and competition lists.
- Write unit tests for the competition results calculation service.
# Clone the repository
git clone https://github.com/shadowgks/AppGCM.git# Go to the backend directory
cd AppGCM# install dependencies
mvn install# Run the application
mvn spring-boot:run