A.Y. 2023-2024 Software Engineering 2 Project
Note: Please be aware that the application is still in the prototype stage, and some features may be missing while bugs may be present.
CKB is a platform where educators create code kata battles for students to participate in. These battles are programming exercises designed to enhance coding skills through practice and collaboration. Below are some key features of the platform:
- Code Kata Battles: Educators create programming exercises with descriptions and test cases, which students complete using their code.
- Tournaments: Battles are organized into tournaments, allowing educators to manage multiple challenges and track student performance.
- Automated Evaluation: The platform automatically evaluates submissions based on factors like functional aspects, timeliness, and code quality.
- Scoring and Rankings: Teams receive scores based on their performance in battles, contributing to their overall tournament rankings.
- Gamification: CKB includes gamification elements such as badges, awarded based on students' achievements and participation.
- Java 21
- Maven 4
The backend was developed using IntelliJ IDEA, but any IDE supporting maven should be fine.
All the dependencies can be installed using the pom.xml file; cd into the project folder (ITD/Backend/CodeKataBattle) and run:
mvn install
- NodeJS
- React
All the dependencies can be installed using npm; cd into the project folder (ITD/Frontend/codekatabattle-app) and run:
npm install
The project aims to simulate the entire process of developing a complex application. It consisted of four phases:
-
RASD (Requirements Analysis and Specification Document): This document outlines the detailed requirements and specifications of the application. It includes information about the intended users, system functionalities, constraints, and any other relevant details necessary for understanding the project scope.
-
DD (Design Document): In this phase, the design of the application architecture, user interface, and database schema are detailed. It provides a blueprint for how the requirements outlined in the RASD will be implemented.
-
ITD (Implementation and Testing Document): Here, the actual implementation of the application takes place based on the designs from the DD phase. Additionally, thorough testing procedures are outlined to ensure the application functions as intended and meets the specified requirements.
-
ATD (Acceptance Testing Document): This document details the acceptance criteria and procedures for verifying that the completed application meets the expectations of the stakeholders. It includes steps for conducting user acceptance testing and any necessary adjustments or fixes based on the test results.
Backend Development:
- Java: We employed Java as the primary programming language for the backend development.
- Spring Boot: Utilizing Spring Boot facilitated rapid development of RESTful APIs and streamlined application configuration.
- Hibernate: Hibernate was integrated for efficient management of database interactions, ensuring seamless data persistence and retrieval.
- Common Spring Libraries: Various Spring libraries were incorporated to handle authentication, authorization, and other cross-cutting concerns effectively.
Frontend Development (Work in Progress):
- React.js: The frontend is currently under development using React.js. React's flexibility, scalability, and extensive ecosystem make it an ideal choice for building interactive user interfaces. We utilized common React libraries such as React Router for routing and React-Bootstrap, enhancing the development process and user experience.
Deployment with Docker: During the ATD phase, the project was deployed using Docker containers. The necessary Dockerfiles are present in the source folders for easy deployment and reproducibility. An env file containing the token shown in our example should be passed to the backend container.
More Information: Additional details regarding backend development and architecture can be found in the Implementation Design Document (ITD) located in the Delivery folder.
30/30 with honors