A REST API built using Ktor for an Android stamp colection game.
This API currently includes four major plugins :
- Application
- Routing
- Monitoring
- Security
- Serialization
Located in the ../plugins folder
Server Application
Routing
This Ktor Server application utlizes the netty engine version 2.0.0
This is currently used as testing and production server.
Routing
- Consits of several authentication and non authentication routes that serves players requests asyncronously.
- This plugin also starts the mail server used to handle user account-related requests.
- User and game-related information are accessed from the MySQL database using queries located in the MySQL repository
- JWT access and refresh tokens time-related values can be found in the Constant file and token generation information is available in the relevant library documentation.
Monitoring
- Due to the small scale nature of the project monitoring, all route info is shown in the console
- Need to change the logging level of Simple Kotlin Mail Server
Security
- Security "secret" reference is located in the application.conf file. Please note ktorKey the reference for "secret" must be added as an environmnet variable of your system inorder for server to work
- JWT structure and port info. is also in the applicaiton.conf file
- Need to change the level logging for Simple Kotlin Mail Server
Serialization
- Handled using the GSON library
- Implement RASP for added protection
- Enhance Security Testing
Todo Items | Priority | Completion Status |
---|---|---|
Load Testing of the Simple Kotlin Mail Server | P3 | not completed |
Reset Password Timeout Testing | P2 | not completed |
Reformat database entity mapping to with new normalized table | P1 | not completed |
Stamp Table needs normalization | P1 | not completed |