Skip to content

A.Y. 2023-2024 Software Engineering 2 Requirement Engineering and Design Project

Notifications You must be signed in to change notification settings

Jacopopiazza/CodeKataBattle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeKataBattle

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.

Project Overview

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.

Requirements

Backend

  • 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

Frontend

  • NodeJS
  • React

All the dependencies can be installed using npm; cd into the project folder (ITD/Frontend/codekatabattle-app) and run:

npm install

Goal

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.

Implementation

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.

Grade

30/30 with honors

Team

About

A.Y. 2023-2024 Software Engineering 2 Requirement Engineering and Design Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 50.7%
  • TeX 38.2%
  • JavaScript 10.6%
  • CSS 0.2%
  • Dockerfile 0.2%
  • HTML 0.1%