A fitness tracker service comprised of a React (Typescript) frontend served by a GraphQl API and database
- Create monorepo (yarn workspaces)
- Create site and api packages
- Use Typescript
A Foundational stack for VPC and other related resources
- Create VPC via CDK (look at masterchef for configuration)
A Lambda based GraphQL server connected to a mysql database. Using Typescript classes to generate both GraphQL schemas and TypeORM entities. Generated schemas will be used to initialize an apollo-server
graphql server which will use typeorm
for the functions in its resolvers.
- Create a serverless project to provision:
- VPC - and stuff
- MySQL Database
- Lambda
- Generate basic schema with
type-graphql
decorators - Generate basic entities with
typeorm
decorators - Encrypt secret fields with
typeorm-encrypted
- Add Input type classes for
graphql
mutations - Add basic resolver for
User
to test - Solve typeORM lambda connection management
- Create
apollo-server
lambda handler - Create CLI triggered lambda to execute raw SQL
- Stop losing data in db
- Add CRUD resolvers for basic schema objects
- Add Authentication (Cognito)
- Add Authorization via
typeorm
auth decorators and apollo context - Add Entity relationships
- Create a separate package for VPC stack
- Put lambdas and database in separate subnets + security groups
A react
website communicating with the backend via graphql
- Generate site with
create-react-app
with Typescript flag - Test basic connection with
@apollo/client
- Integrate
react-router
for navigation - Create site structure
- Decide on and create basic folder structure
- Add core pages
- Integrate Cognito login
- Get access to specific user data via cognito credentials
- Integrate
redux-toolkit
for store and async actions- Create stores for pages