Skip to content

Project Walkthrough Overview

Code Genie projects are monorepos that include everything you need to deploy a full stack, Serverless, Cloud Native application.

All packages are written using Typescript and Node.js. Packages for the frontend, backend, infrastructure (IAC), and other supporting packages exist within the top-level /packages directory.

This guide walks you through the source code of a Code Genie project so that you can quickly start building your application.

Project Structure

Below is a high-level view of the overall project structure. In the following guides we’ll dive deeper into each individual package.

  • Directory.github
    • Directoryworkflows
  • Directorypackages
    • Directoryapi
    • Directorycdk
    • Directorycognito
    • Directoryui
  • README.md
  • package.json

Frontend Web App

The frontend is a React Next.js Single Page Application (SPA) that uses the Ant Design component library and is hosted on AWS Amplify Hosting.

Read the Frontend project structure walkthrough for more information.

API

The API is an Express REST API hosted on AWS Lambda and API Gateway, utilizing the @codegenie/serverless-express package.

Read the API walkthrough for more information.

Database

The database uses AWS DynamoDB, with DynamoDB Toolbox as the client library for querying and mutating data.

Read the Database walkthrough for more information.

Auth/Identity

User Identity/Auth is managed via an AWS Cognito User Pool.

Read the Auth/Identity walkthrough for more information.

Cloud Infrastructure

All cloud infrastructure is defined as IAC (Infrastructure as Code) using AWS CDK. This enables developers to easily create new and consistent environments for prod, staging, and individual developer instances.

Read the Cloud Infrastructure walkthrough for more information.

CI/CD Pipeline

A Continuous Integration/Delivery (CI/CD) pipeline is built using GitHub Actions/Workflows. Read the CI/CD Pipeline walkthrough for more information.

Miscellaneous (Everything else)

Other packages not covered in other sections (such as common and utils) are covered in the Miscellaneous walkthrough.