Features and Requirements
Functional Requirements
-
Game Process
- The application will follow a structured flow
- Users will be paired.
- Users will be assigned a random problem from the problem list.
- The coder will develop code to solve the problem.
- The QA participant will write and run unit tests for functions the coder writes (without seeing implementation details).
- QA Participant's test case results are sent to the coder for further code refinement.
- After a designated interval, the roles switch.
- Process repeats until a team finishes.
-
Coding Questions
- The application will include questions that are stored persistently.
- The questions will include
- Strings
- Arrays
- Trees
- Math Questions
- Data Structures & Algorithms
-
User must be able to interact with matchmaking
- Start the search for matchmaking
- Exit matchmaking
-
User must have an account to play on CodeBattlegrounds
- They will be prompted to sign-in with Google
- User will be authenticated through google Oauth
Nonfunctional Requirements
-
Security
- The application will leverage Google Authentication services
-
Interfaces
- The user interface will be designed for simplicity and ease of use, following modern design principles.
-
Performance
- The program can handle submitting code and providing feedback between users in an efficient and fast manner
-
Usability
- Provide a responsive design