Robot Apacalypse
The year is 2050 and the world as we know it has been taken over by robots.
Created as once friendly robots, have now turned against humankind, especially
software engineers like yourself. Their mission is to transform everyone into
mindless zombies for their entertainment. You as a resistance member (and the last
survivor who knows how to code), was designated to develop a system to meet the
following requirements
The API documentation is hosted here
Setting up the Spring Boot Application with Gradle
This is a guide to set up the Spring Boot application with Gradle.
Prerequisites
- Java 11 or higher
- Gradle 5.6 or higher
- MySQL 5.6 or higher
Installation
-
Clone this repository to your local machine:
git clone https://github.com/your-username/thullo/thullo-backend.git
-
Create MySQL database
mysql> create database robot_apocalypse
-
Configure database username and password
# src/main/resources/application.properties spring.datasource.url=jdbc:mysql://localhost:3306/robot_apocalypse spring.datasource.username=<YOUR_DB_USERNAME> spring.datasource.password=<YOUR_DB_PASSWORD>
-
Navigate to the root directory of the project.
cd project_directory/
-
Build the project using Gradle.
./gradlew clean build
-
Run the project
./gradlew bootRun
-
The Spring Boot application should start running and you should be able to access it at http://localhost:8080.
Functional requirement
- Add survivors to the database
- Update survivor location
- Flag survivor as infected
- Connect to the Robot CPU system
- Sort robots into categories (flying and land)
- Provide percentage of infected survivors
- Provide percentage of non-infected survivors
- Provide a list of infected survivors
- Provide a list of non-infected survivors
- Provide a list of robots.
Non-Functional Requirements
The following non-functional requirements must be met:
- Availability: The application must be highly available, with minimal downtime and interruptions in service.
- Performance: The application must be optimized for low latency, with fast response times to user requests.