2023-11-02 08:40:48 +00:00
<a href="https://classroomio.com/">
2025-09-28 20:57:45 +01:00
<img alt="ClassroomIO is a no-code tool that allows you build and scale your online bootcamp with ease." src="https://raw.githubusercontent.com/classroomio/classroomio/main/apps/classroomio-com/static/classroomio-opengraph-image.png" />
2024-01-26 10:06:39 +01:00
<h1 align="center">ClassroomIO.com</h1>
2023-11-10 20:14:45 +00:00
<p align="center">
2024-10-07 01:36:07 +01:00
The Open Source Learning Management System for Companies
2023-11-10 20:14:45 +00:00
<br />
2023-11-16 07:37:54 +00:00
<a href="https://classroomio.com">Website</a> | <a href="https://dub.sh/ciodiscord">Join Discord community</a>
2023-11-10 20:14:45 +00:00
</p>
2023-11-02 08:40:48 +00:00
</a>
2020-12-24 20:32:05 +02:00
2025-09-28 20:57:45 +01:00
[](https://app.codacy.com/gh/classroomio/classroomio?utm_source=github.com&utm_medium=referral&utm_content=classroomio/classroomio&utm_campaign=Badge_Grade)
2024-01-31 22:04:44 +01:00
2024-01-26 10:06:39 +01:00
## ✨ About ClassroomIO.com
2023-08-02 19:35:27 +01:00
2025-09-28 20:57:45 +01:00
<img alt="ClassroomIO Courses page" src="https://raw.githubusercontent.com/classroomio/classroomio/main/apps/classroomio-com/static/classroomio-courses.png" />
2023-08-02 19:35:27 +01:00
2024-03-08 07:58:02 +01:00
Streamline training for everyone with ClassroomIO.com. Our all-in-one platform empowers bootcamps, educators, and businesses to manage training programs easily. With our platform, anyone can run multiple classes and cohorts all from one UI. The application is mobile-first, which means that students can access your lesson materials from any device.
2023-08-13 09:17:36 +01:00
2023-11-24 21:45:51 +00:00
### Mission: Provide Students with the Best Learning Experience
2023-08-13 09:17:36 +01:00
2023-11-16 07:37:54 +00:00
At ClassroomIO, our mission is to provide students with the best possible learning experience. We believe in empowering educators with the tools they need to deliver high-quality education that is accessible, engaging, and effective.
2023-11-10 20:14:45 +00:00
### Key Features
1. ** 📚 Advanced Course Management:** You can create unlimited courses, create lessons, invite students, add assignments, grade their assignments, and even generate certificates.
2. ** 👨👩👦 Multi-Teacher Management:** You can invite other teachers into your organization and assign them individual courses.
3. ** 🤖 AI Integration:** We've got OpenAI integration for quick course creation where you can generate course content, lesson outlines, and even generate assignments right from your lesson notes.
4. ** 💬 Forum:** Students can ask questions in your dedicated community and get answers from either you or other students.
2024-10-06 23:56:38 +01:00
5. ** 💻 Dedicated Student Dashboard:** Once you create an account, you get a dedicated dashboard where your students can access all their courses, assignments, and more.
6. ** 🔒 Fully open source:** You can self-host the entire stack on your servers.
2023-11-10 20:14:45 +00:00
### Roadmap Features
2023-11-16 07:37:54 +00:00
2023-11-10 20:14:45 +00:00
1. **Forms:** Instead of using Google Forms to collect vital information from your students, you will be able to create forms directly within the dashboard.
2024-06-18 04:24:42 +01:00
2. **Course Templates:** You can clone a full course or share templates with other people.
3. **Analytics:** You can track data about your students across multiple courses.
4. **Run Courses on Messengers:** Students can just join a channel on slack/discord/telegram and a bot automatically sends daily lesson content to your students without you doing anything.
2023-11-10 20:14:45 +00:00
Please reach out to me on [twitter ](https://x.com/rotimi_best ) if you have any feature request.
2023-11-16 22:19:53 +00:00
## Built With
2024-01-11 21:29:23 +11:00
- [SvelteKit ](https://kit.svelte.dev/?ref=classroomio.com )
2023-11-16 22:19:53 +00:00
- [Supabase ](https://supabase.com/?ref=classroomio.com )
- [TailwindCSS ](https://tailwindcss.com/?ref=classroomio.com )
2023-11-10 20:14:45 +00:00
## Get a Demo
You can book a quick 15 min demo to see if ClassroomIO is a good fit for you
2023-11-16 22:19:53 +00:00
<a href="https://cal.com/classroomio/demo">
<img src="https://cal.com/book-with-cal-dark.svg" alt="Book a Call with ClassroomIO.com">
</a>
2023-11-10 20:14:45 +00:00
<!-- GETTING STARTED -->
## Getting Started
To get a local copy up and running, please follow these simple steps.
### Prerequisites
2023-11-24 21:45:51 +00:00
Here is what you need to be able to run ClassroomIO.com
2023-11-10 20:14:45 +00:00
2025-09-07 15:04:09 +01:00
- [Node.js ](https://nodejs.org/ ) (Version: >=22.x)
2023-11-16 22:19:53 +00:00
- [Supabase CLI ](https://github.com/supabase/cli )
- [Docker ](https://docs.docker.com/engine/install/ )
- [NPM ](https://www.npmjs.com/ )
2023-11-10 20:14:45 +00:00
2023-11-25 21:56:02 +00:00
### Project Structure
This repo is a mono repo that consists of 3 projects:
1. `classroomio-com` : The landing page of ClassroomIO hosted [here ](https://classroomio.com )
2025-09-21 19:35:41 +01:00
2. `api` : The api service that handles PDF, video processing, Emailing and Notifications.
2024-02-28 03:25:25 +01:00
3. `dashboard` : The web application that runs the learning management system hosted [here ](https://app.classroomio.com ).
4. `docs` : Official documentation of ClassroomIO hosted [here ](https://classroomio.com/docs )
2023-11-25 21:56:02 +00:00
2023-11-16 22:19:53 +00:00
## Development
2023-11-10 20:14:45 +00:00
2023-12-09 10:56:46 +03:00
### Gitpod Setup
1. Click the button below to open this project in Gitpod.
2. This will open a fully configured workspace in your browser with all the necessary dependencies already installed.
2025-09-28 20:57:45 +01:00
[](https://gitpod.io/#https://github .com/classroomio/classroomio)
2023-12-09 10:56:46 +03:00
### Local Setup
2023-11-16 22:19:53 +00:00
2023-12-01 21:03:19 +01:00
1. Fork the repo, then clone it using the following command (remember to replace the url with the url from your forked repo)
2023-11-16 22:19:53 +00:00
```bash
2025-09-28 20:57:45 +01:00
git clone https://github.com/classroomio/classroomio.git
2023-11-16 22:19:53 +00:00
` ``
2. Go to project folder
` ``bash
cd classroomio
` ``
2023-11-24 21:45:51 +00:00
3. Set up Node if your Node version does not meet the project's requirements, as instructed by the documentation., "nvm" (Node Version Manager) allows using Node at the version required by the project:
2023-11-16 22:19:53 +00:00
` ``bash
nvm use
` ``
You first might need to install the specific version and then use it:
` ``bash
nvm install && nvm use
` ``
You can install nvm from [here](https://github.com/nvm-sh/nvm).
2023-12-01 21:03:19 +01:00
You also need to have pnpm installed, you can find the installation guide [here](https://pnpm.io/installation#using-npm)
2023-12-09 10:56:46 +03:00
4. Set up your ` .env` file
2023-11-16 22:19:53 +00:00
2025-09-28 20:57:45 +01:00
- Go to ` apps/dashboard` and ` apps/api`.
2023-11-24 21:45:51 +00:00
- Duplicate the ` .env.example` file and rename it to ` .env`
2024-04-12 04:57:19 +01:00
- Populate your .env files with the neccessary variables
To get the environmental variables for supabase continue to step(5)
2023-11-16 22:19:53 +00:00
2025-09-28 20:57:45 +01:00
1. Install all dependencies
2024-07-20 11:36:20 +01:00
` ``bash
pnpm i
` ``
2025-09-28 20:57:45 +01:00
2. Setup Supabase.
2023-11-16 22:19:53 +00:00
- Install and Start [docker](https://docs.docker.com/engine/install/)
2025-09-28 20:57:45 +01:00
- Install [Supabase CLI](https://supabase.com/docs/guides/local-development/cli/getting-started) on your computer
2023-11-24 21:45:51 +00:00
- Go to the project directory in your terminal and start Supabase
2023-11-16 22:19:53 +00:00
` ``bash
2025-09-28 20:57:45 +01:00
supabase start
2023-11-16 22:19:53 +00:00
` ``
- You should get a result like this
` ``bash
supabase local development setup is running.
API URL: http://127.0.0.1:54321
GraphQL URL: http://127.0.0.1:54321/graphql/v1
DB URL: postgresql://postgres:postgres@127.0.0.1:54322/postgres
Studio URL: http://127.0.0.1:54323
Inbucket URL: http://127.0.0.1:54324
JWT secret: super-secret-jwt-token-with-at-least-32-characters-long
anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0
service_role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU
` ``
2025-09-28 20:57:45 +01:00
- Add Supabase environment variables into ` app/dashboard` folder, which should be taken from the result of ` supabase start`
2023-11-16 22:19:53 +00:00
` ``env
PUBLIC_SUPABASE_URL=<API URL>
PUBLIC_SUPABASE_ANON_KEY=<anon key>
2024-03-22 06:30:24 +01:00
PRIVATE_SUPABASE_SERVICE_ROLE=<service_role key>
2023-11-16 22:19:53 +00:00
` ``
2025-09-28 20:57:45 +01:00
- To view the Supabase studio, open the Studio URL from the result of ` supabase start`
2023-11-16 22:19:53 +00:00
2025-09-28 20:57:45 +01:00
3. Run all projects (in development mode)
2023-11-16 22:19:53 +00:00
` ``bash
2023-11-25 21:56:02 +00:00
pnpm dev
2023-11-16 22:19:53 +00:00
` ``
2025-09-28 20:57:45 +01:00
4. All projects should start running
2023-12-09 10:56:46 +03:00
2024-10-04 22:49:29 +01:00
- ` classroomio-com`: [http://localhost:5174](http://localhost:5174)
2025-09-21 19:35:41 +01:00
- ` api`: [http://localhost:3002](http://localhost:3002)
2024-10-04 22:49:29 +01:00
- ` dashboard`: [http://localhost:5173](http://localhost:5173)
2023-11-25 21:56:02 +00:00
- ` docs`: [http://localhost:3000](http://localhost:3000)
2023-11-30 13:53:56 +03:00
2025-09-28 20:57:45 +01:00
5. Running a specific project
2024-02-13 05:11:43 +00:00
2025-09-28 20:57:45 +01:00
- **classroomio-com**: ` pnpm dev --filter=@cio/classroomio -com`
- **api**: ` pnpm dev --filter=@cio/api `
- **dashboard**: ` pnpm dev --filter=@cio/dashboard `
- **docs**: ` pnpm dev --filter=@cio/docs `
2024-02-13 05:11:43 +00:00
2025-09-28 20:57:45 +01:00
6. Login into ` dashboard`
2024-02-13 05:11:43 +00:00
2025-09-28 20:57:45 +01:00
- Visit [http://localhost:5173/login](http://localhost:5173/login)
2024-04-12 05:04:48 +01:00
- Enter email: ` admin@test .com`
- Enter password: ` 123456`
2024-06-18 10:15:49 +01:00
To learn more about how to login with a dummy account, [go here. ](https://classroomio.com/docs/contributor-guides/demo-accounts )