explaingit

rolling-scopes/rsschool-app

10,394TypeScriptAudience · developerComplexity · 4/5Setup · hard

TLDR

The open-source web platform that powers RS School, a free online coding bootcamp, manages student enrollment, assignment tracking, mentor matching, and progress reporting for large cohorts of learners.

Mindmap

mindmap
  root((rsschool-app))
    Frontend
      Next.js
      React
    Backend
      NestJS
      PostgreSQL
    Features
      Student Tracking
      Mentor Matching
      Assignment Management
    Infrastructure
      AWS
      GitHub Actions
      Turbo Monorepo
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run your own free online coding school, using this platform to track students, mentors, and assignments at scale.

USE CASE 2

Contribute to the open-source system powering RS School, front end, back end, or DevOps improvements.

USE CASE 3

Study a real-world production monorepo built with Next.js, NestJS, PostgreSQL, and AWS to learn modern full-stack architecture.

USE CASE 4

Fork the platform to manage a community learning program or volunteer mentorship initiative.

Tech stack

TypeScriptNext.jsReactNestJSPostgreSQLAWSGitHub ActionsTurbo

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Node.js, Podman, and restoring a local test database snapshot before the app will run.

No license information is mentioned in the explanation.

In plain English

RS School App is the platform that powers RS School, a free online programming school based in Belarus that has trained thousands of students in front-end development, back-end development, mobile apps, and data science. The application handles the operational side of running large-scale free courses: tracking student progress, managing assignments, coordinating mentors and students, and supporting the overall educational workflow. The application is built with TypeScript and uses Next.js and React on the front end, NestJS on the back end, and PostgreSQL as the database. It runs on Amazon Web Services infrastructure and uses GitHub Actions for automated deployment. The project is organized as a monorepo, meaning multiple related codebases (client, server, and a newer NestJS backend) live in the same repository and are managed together using a build tool called Turbo. RS School itself is a community-driven initiative where experienced developers volunteer as mentors to teach beginners at no cost. The app at app.rs.school is the live production system students and mentors use. Contributors to the codebase are publicly credited, and there is an Open Collective page for financial support of the project. Setting up a local development environment requires installing Node.js, Podman (a container tool similar to Docker), and a few other prerequisites. The setup process involves cloning the repository, installing dependencies, starting a local database, restoring a test data snapshot, and running the application. The project is actively maintained and open to external contributions, with a contributing guide available in the repository.

Copy-paste prompts

Prompt 1
I'm setting up the RS School App locally. I have Node.js and Podman installed. Walk me through starting the PostgreSQL database, restoring the test snapshot, and running the Next.js and NestJS apps.
Prompt 2
Explain the monorepo structure of rsschool-app: what's in the client directory, the server directory, and the NestJS backend, and how Turbo ties them together.
Prompt 3
I want to add a feature to rsschool-app that shows a student's assignment completion rate on their profile page. Which files should I edit in the NestJS backend and the Next.js frontend?
Prompt 4
How does RS School App handle mentor-student matching? Walk me through the relevant API endpoints and database tables involved.
Open on GitHub → Explain another repo

← rolling-scopes on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.