EtienneDx / git-mentor

A git server with built-in tools for teaching programming
MIT License
2 stars 0 forks source link

React workflow Rust workflow codecov

Git mentor

This project holds the components to the Git mentor project.

Components

Setting up the development environment

Prerequisites

Rust

The project uses Rust. To install Rust, follow the instructions at https://www.rust-lang.org/tools/install.

Node.js

The frontend uses Node.js. To install Node.js, follow the instructions at https://nodejs.org/en/download/. As of the 25/04/2024, the project uses v20.10

AWS CDK

To generate the resources used by the project in AWS, you need to install the cdk:

npm install -g aws-cdk

Database

To run the database, it is recommended to use docker and the provided docker-compose scripts. To install docker, follow the instructions at https://docs.docker.com/get-docker/.

Otherwise, you would need to modify the environments of the project consuming the database. The database is a Postgre-SQL system.

Running the project

  1. Clone the repository:
git clone https://github.com/EtienneDx/git-mentor
  1. Follow the instructions in each package.

Most backend (rust) projects can be runned directly using cargo:

cargo run

For the frontend, please refer to the gmt-web-app README.

Contributing

When a pull request is submitted, the project will run the tests, linters and vulnerability checks.

Provided a maintainer's approval, the proposed change will also be deployed on an AWS environment, allowing for manual testing. Please remember to turn off the instance after testing for pending PRs, as my wallet will thank you.

Re-usable crates

Some rust crates defined here could someday be re-used and deployed in the crates.io repository. If you are interested in using one of the crates, please open an issue to discuss the possibility of deploying it.

The relevant crates here are:

License

This project is licensed under the MIT License - see the LICENSE file for details.