This project holds the components to the Git mentor project.
- database: The shared database for the different git mentor applications
- docs: Documentation of the project
- git-server: A simple git server library
- git-server-example: A simple example of the use of the git-server library
- gmt-api: The APIs of the project
- gmt-cdk: The CDK stacks of the project
- gmt-common: The common components of the project, reused by the different applications
- gmt-server: The git server application
- gmt-web-app: The frontend application of the project
- ssh-server: A simple ssh server library, reused by the git-server library
The project uses Rust. To install Rust, follow the instructions at https://www.rust-lang.org/tools/install.
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
To generate the resources used by the project in AWS, you need to install the cdk:
npm install -g aws-cdk
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.
- Clone the repository:
git clone https://github.com/EtienneDx/git-mentor
- 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.
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.
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:
- git-server: A simple git server library
- ssh-server: A simple ssh server library, reused by the git-server library
This project is licensed under the MIT License - see the LICENSE file for details.