Welcome to Project CM 👋, we're glad you're here! This project was born from our community over at codementoring.co. The goal of this project is to bring free, fun education to anyone who wants to learn how to code.
We differ a little to other approaches and platforms with our unique focus on storytelling. For us, stories are the bedrock of society and are how we've been learning as humans since the dawn of time. In this project, all education, features, new ideas and roadmaps have a focus on the story they tell. This is what makes Code Mentoring, and this platform special. We think you'll like it too 😊.
- Lerna: Project CM uses Lerna to manage all the packages in the repo. Lerna is a great way of handling multiple code bases in a single git repository.
- Typescript: We love TS here at Code Mentoring. We feel it provides the flexibility of JS with extra safety and control. Perfect for large projects like this
- React: A popular framework for building UIs that needs no introduction. We use React for all our front-end projects.
- NestJS: Nest is a Node.js/GraphQL platform for building great APIs. It has great support for typescript too. We use this for all our APIs/backends.
- GraphQL: GQL is a very innovative alternative to the standard REST API you might be used to. We use GQL as the communication layer between our front-end and back-end. (NestJS for API, and Apollo for React)
- Apollo: Apollo is a great framework that NestJS uses to communicate with the front-end. We use Apollo Client in React to talk to the API.
- Postgres Database: A very powerful, open source database used by the industry for projects of all sizes.
Code Mentoring is an open community for all types and levels of develoeprs, designers, hackers and tinkerers. If you want to get involved, or see something you want to build (or even a bug fix), head over to our Contributing document for more information.
Please read our branching strategy in Contributing.
This is important if you want to contribute!
We use our Slack community (#project-cm channel) for discussions on the project,
and Github projects for tracking issues.
We also have a weekly standup call at 6pm EST on Hangouts. Message one of the maintainers for access to slack or to get a meeting invite.
-
Install Node.js. Check the website for information on how to install
-
Install Yarn Check the website for information on how to install
-
Clone the project. Git clone the project to somewhere you want to work on your local machine
-
Install Postgres database. This will be needed to run the project locally
-
Setup database
- Create a user on your new Postgres database
- Create a database called
code_mentoring_learningin Postgres - Create your local development settings file under:
packages/api/config/development.yml - Add the following to that file:
db: username: USER YOU JUST CREATED IN POSTGRESS password: PASSWORD YOU USED
-
Install dependencies: Inside the root of the project, run
yarnand wait for install -
Setup is complete 🎉!
Project CM is divided into 3 (currently) main packages.
api: The NestJS API package that powers all our data (api.codementoring.co)client: The React package that provides the UI/front-end for the project (learn.codementoring.co)ui: A React project for all the UI components to live. (Will eventually be reused in the WWW/marketing site)
cd packages/api;
yarn dev
You can then open http://localhost:4000/graphql to test the API
cd packages/client;
yarn dev
Once the API is running, open http://localhost:8080 to load the front-end.
We use Figma for this project.
This project is built and maintained by the community of Code Mentoring.
Built by the people, for the people