Architecture - WBot3000/choreward GitHub Wiki
Overview
Choreward is an interactive family-oriented application designed to manage to-do lists and host family contests with video submissions. The application will consist of a user-friendly client that is easy to navigate and fun to interact with. It will be hosted on AWS servers, and use AWS services for all of its features. It will use a comprehensive non-relational database that supports a variety of data types (e.g. text, images, and videos).
- Type of Application: Web and Mobile Application
- Hosting: AWS Cloud-based hosting platform
- Types of Users: Admin, Parents, Children, Roommates
Technology Stack
Languages
JavaScript (React.js), GraphQL
Tools
AWS Amplify
- Amazon Cognito
- Dynamo DB
- S3
- Appsync
- Cloud Watch (For Monitoring Development and Testing)
- I AM (For Privileged access)
Infrastructure
AWS Services are the backbone of the infrastructure, providing a variety of solutions for hosting, computing, storage, and more.
Solution Design
High-Level Context View
Container View
GraphQL Schema
Non-functional Requirements
- Availability: The application contains a real-time component in the form of weekly tasks and family competitions, so the ability to access the site within a certain time period is a must. In order to achieve this, every time the data is changed, it will be re-fetched, so the user is always working with the latest available data.
- Usability: The application will be used by younger children, so ease of use is a must. Every time a person creates a new UI component is created, another member of the team will review it to determine how intuitive it is.
- Performance: The real-time components of this application and its use by children (who can often be impatient) mentioned above both contribute to the need for high performance. The team will aim for latency of at most 1-2 seconds for all of the application's features, continually testing this as more functionality is developed.
- Security: The application will contain personal account and family data (usernames and password, family names, videos). Since creating security solutions can be very challenging, we will use the built-in security protections of AWS services, as well as only collecting what is necessary for the app to function.
Assumptions
- User has access to the internet
- User has basic operating knowledge of how to operate web applications
- Application frontend design should be mobile-friendly
- If application crashes, data will be backed up
Presentation Resources
The PPT Slides could be find here (https://docs.google.com/presentation/d/1N5axtHyf5kp1UWwgLGyzdPX78JBpNUwJQKqXr-HF0R0/edit?usp=sharing)