Getting Started
The starting point for the documentation for the tax game project.
Welcome to our IMY772 AWS Project. Please see the various pages and documents on our project.
Game Setup
How to setup a game using the taxga.me website
Setup Guide
VHow to self host the project on AWS
Backend Guide
Are you a developer? View how to setup and configure the backend services
API Contracts
View all the contracts for the RESTful API and Web Socket service
Backend Guide
View the basics of how the websockets work
Web Socket Specifics
This page contains all of the specific requirements for the web socket server
Web Socket Requests
View the web socket requests
Terms & Privacy
View the terms of usage and privacy policy of the project
Markdown Guide
A guide on how to write markdown
Special requirements
- AWS was used for all our services (specifically the services we could use).
- We are using OpenAI API as our AI integration.
- We are doing dynamic QR code generation as our image processing.
- Network security and request validation via Cloudflare.
Future plans
These are all things that we would have liked to have done but just did not have the time to do.
- Deploy all services via AWS CDK and AWS SAM.
- Setup and manage the EC2 and ElastiCache via CDK.
- Setup a NAT Gateway via an EC2 instance to save on native AWS NAT Gateway costs.
- Migrate documentation to its own hosted document solution on the taxga.me domain.
Scalability
Due to the nature of AWS, the services are easily scalable. Our main features are using AWS serverless features that are highly scalable by nature. AWS Lambda function automatically handles scaling the number of execution environments until you reach our accounts limits. It has a limitation of 1000 concurrent requests but this can be increased upon request from AWS.
AWS DynamoDB automatically handles scaling, with dynamic reads and writes depending on the amount of requests. This is managed by AWS CloudWatch to montior all the reads and writes and adapts as needed.
The EC2 instance that the Redis/ElastiCache is hosted on is also easily scalable. Resources can either be manually allocated or one could setup automatic resource allocation to the EC2 instance also using AWS CloudWatch to see the read and writes to the ElastiCache instance.
The nature of AWS Amplify uses serverless technologies where all these resources scale automatically. The only thing that we would manage the amount of RAM is allocated to the serverless services.
Thus, the whole AWS system is highly scalable and this was designed like this.
Security
We are not storing any highly sensitive data of the players, and all of the data transmitted via HTTPS and SSL. We make use of Cloudflare as our primary network security provider. Cloudflare offers various security features that we are making use of.
- Request validation: Requests are validated and sanitized before being sent to our AWS services to remove any false requests.
- Spam & DDoS protection: Cloudflare has really good spam and DDoS protection which prevents overloading of our system on AWS.
- Bot protection: Cloudfalre blocks all bots from accessing our services, this also prevents any overloading of our system on AWS.
You can view a full list of Cloudflare security features here.