Skip to content

A TypeScript/React web app to review restaurants along with a Python/Django REST API and React-Admin panel, hosted on AWS ECS (Fargate) as isolated docker containers, utilizing Route53, RDS (postgres), CodePipeline, and VPC design.

License

Notifications You must be signed in to change notification settings

damo-da/bars-and-grills

Repository files navigation

Bars and Grills (Restaurant App)

A sample web solution which allows users to review restaurants, featuring:

  • A multi-project React app for a responsive mobile-first frontend ("webapp"), and an admin-panel (React-Admin)
  • A Python/Django RESTful API running using a postgres database (on AWS RDS)
  • Amazon Web Services hosting components on Elastic Container Service
  • Continuous Integration (CI) using CircleCI and Continous Deployment (CD) using AWS CodePipeline

Project homepage: bng.damodar.dev
Frontend: app.bng.damodar.dev
Admin-Panel: admin.bng.damodar.dev (username: admin, password: i_like_bars_and_i_cannot_lie)
Django API: api.bng.damodar.dev (Swagger specs)
Source Code: on GitHub

React projects

  • A multi-project create-react-app for mobile-first frontend ("webapp"), and an admin-panel (React-Admin)
  • Responsive Material UI with pixel-perfect designs
  • Strong typing using TypeScript and eslint
  • React Hooks
  • The two projects hosted as isolated docker containers in ECS, both running using nginx

Django backend

  • Role based authentication using JWT for stateless paginated RESTful API calls
  • Hosted as isolated docker container in ECS with auto-scaling
  • Postgres database
  • Swagger specifications
  • Postman routes

AWS Cloud Architecture

BNG AWS Cloud Architecture diagram

  • Partially set up using Terraform (intending to migrate all config to Terraform)
  • CodePipeline to:
    • Automatically trigger build on pushing source code in CodeCommit
    • Build docker containers for webapp, admin-panel and api and push them to ECR
  • Elastic Container Service cluster (like Kubernetes)
  • All resources running on a private cloud (VPC) located in us-west-2 (Oregon)
  • Route53 domain zone for bng.damodar.dev
  • Certificates managed through ACM

License

Free and open source software (FOSS) licensed using the MIT License.

Contributors

This project was created by Damodar Dahal hi@damodar.dev. All pull requests and issues are welcome.

About

A TypeScript/React web app to review restaurants along with a Python/Django REST API and React-Admin panel, hosted on AWS ECS (Fargate) as isolated docker containers, utilizing Route53, RDS (postgres), CodePipeline, and VPC design.

Topics

Resources

License

Stars

Watchers

Forks