Overview:
The Node.js CI Rustrust-react-typescript-demo repository contains demo code for a YouTube programming learning series that focuses on Rust, React, TypeScript, Docker, Terraform, and Kubernetes. The project, called foodi, is a meal logging tool. This repository serves as an example and can be used as a starting point for other projects. The development process for this project is documented in the accompanying YouTube videos.
Features:
- Rust, Rocket, & SQLx based backend
- React, Mobx, and TypeScript based frontend
- Parcel for frontend packaging
- Docker image with frontend & backend all-in-one
- Terraform for managing a GKE cluster on GCP
- Kubernetes manifest for running on GKE
Installation:
Compiling the Rust Backend Server:
- Install the Rust nightly build with rustup by going to https://rustup.rs/ and following the installation instructions.
- Once the nightly build is installed, build the backend by running the appropriate command.
Run the Database Migration Scripts:
- To create the initial database schema, run the migration scripts using sqlx.
Build the Backend Server:
- Finally, run the backend server.
Running the Frontend Server:
- Install a recent version of Node.js and Yarn, if not already installed.
- Install the frontend package dependencies using Yarn.
- Use parcel to run the frontend development server.
Build and Run the Docker Image:
- Make sure Docker is installed.
- Build the Docker image by running the build command.
- Once the build is complete, run the container and map the appropriate ports.
Summary:
The Node.js CI Rustrust-react-typescript-demo repository provides a demo codebase for a YouTube programming learning series that focuses on Rust, React, TypeScript, Docker, Terraform, and Kubernetes. The codebase includes a backend server built with Rust, Rocket, and SQLx, and a frontend built with React, Mobx, and TypeScript. The frontend is packaged using Parcel, and the entire project can be run using a Docker image. The repository also provides instructions on how to set up and run the backend, frontend, and Docker image.