Files
classroomio/README.md
T

171 lines
6.8 KiB
Markdown
Raw Normal View History

<a href="https://classroomio.com/">
2025-11-01 15:49:29 +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/website/static/classroomio-opengraph-image.png" />
2024-01-26 10:06:39 +01:00
<h1 align="center">ClassroomIO.com</h1>
<p align="center">
2024-10-07 01:36:07 +01:00
The Open Source Learning Management System for Companies
<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>
</p>
</a>
2020-12-24 20:32:05 +02:00
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/629e2bb8994345729513c4d69ccbe3d5)](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
2025-11-01 15:49:29 +01:00
<img alt="ClassroomIO Courses page" src="https://raw.githubusercontent.com/classroomio/classroomio/main/apps/website/static/classroomio-courses.png" />
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.
### 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.
### Roadmap Features
2023-11-16 07:37:54 +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.
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.
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)
2026-03-09 11:18:22 +01:00
- [Hono](https://hono.dev/)
- [PostgreSQL](https://www.postgresql.org/)
- [Better Auth](https://www.better-auth.com/)
2023-11-16 22:19:53 +00:00
- [TailwindCSS](https://tailwindcss.com/?ref=classroomio.com)
## 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>
<!-- 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
2026-03-09 11:18:22 +01:00
- [Node.js](https://nodejs.org/) (Version: >=20.19.3)
- [pnpm](https://pnpm.io/installation)
2023-11-16 22:19:53 +00:00
- [Docker](https://docs.docker.com/engine/install/)
2023-11-25 21:56:02 +00:00
### Project Structure
2026-03-09 11:18:22 +01:00
This repo is a monorepo that consists of these primary apps:
2023-11-25 21:56:02 +00:00
2025-11-01 15:49:29 +01:00
1. `website`: The landing page of ClassroomIO hosted [here](https://classroomio.com)
2. `api`: The api service that handles PDF, video processing, Emailing and Notifications.
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
2026-03-09 11:18:22 +01:00
The repository also contains shared packages under `packages/` (for example `packages/db`, `packages/utils`, and `packages/ui`).
2023-11-16 22:19:53 +00:00
## Development
2023-12-09 10:56:46 +03:00
### Local Setup
2023-11-16 22:19:53 +00:00
2026-03-09 11:18:22 +01:00
1. Fork the repo, then clone it:
2023-11-16 22:19:53 +00:00
```bash
git clone https://github.com/classroomio/classroomio.git
2023-11-16 22:19:53 +00:00
```
2026-03-09 11:18:22 +01:00
2. Go to project folder:
2023-11-16 22:19:53 +00:00
```bash
cd classroomio
```
2026-03-09 11:18:22 +01:00
3. Set up Node (using `nvm`):
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).
2026-03-09 11:18:22 +01:00
4. Install dependencies:
2024-07-20 11:36:20 +01:00
```bash
pnpm i
```
2026-03-09 11:18:22 +01:00
5. Set up your `.env` files:
2023-11-16 22:19:53 +00:00
2026-03-09 11:18:22 +01:00
- Go to `apps/dashboard` and `apps/api`.
- Duplicate the `.env.example` file and rename it to `.env`
- Populate them with required values (at minimum):
- `apps/api/.env`: `DATABASE_URL`, `REDIS_URL`, `AUTH_BEARER_TOKEN`, `BETTER_AUTH_SECRET`
- `apps/dashboard/.env`: `PUBLIC_SERVER_URL`, `PRIVATE_SERVER_KEY`, `PUBLIC_IS_SELFHOSTED`
- Optional for self-hosted Enterprise-only features (SSO, token-auth, no-tracking): set `LICENSE_KEY` in `apps/api/.env`
2023-11-16 22:19:53 +00:00
2026-03-09 11:18:22 +01:00
6. Start local infrastructure for API (Postgres + Redis + db-init):
2023-11-16 22:19:53 +00:00
```bash
2026-03-09 11:18:22 +01:00
docker compose -f docker/docker-compose.yaml up -d postgres redis db-init
2023-11-16 22:19:53 +00:00
```
2026-03-09 11:18:22 +01:00
7. Run the local app services in separate terminals:
```bash
pnpm api:dev
```
```bash
pnpm dashboard:dev
```
8. Default local URLs:
2023-12-09 10:56:46 +03:00
- `api`: [http://localhost:3002](http://localhost:3002)
- `dashboard`: [http://localhost:5173](http://localhost:5173)
2026-03-09 11:18:22 +01:00
9. Optional: run other apps:
2026-03-09 11:18:22 +01:00
- **website**: `pnpm website:dev`
- **docs**: `pnpm dev --filter=@cio/docs`
2026-03-09 11:18:22 +01:00
10. Login into `dashboard`:
- Visit [http://localhost:5173/login](http://localhost:5173/login)
- Enter email: `admin@test.com`
- Enter password: `123456`
2026-03-09 11:18:22 +01:00
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)
2026-03-09 11:18:22 +01:00
### Docker Compose (Full Stack)
```bash
2026-03-11 10:53:03 +01:00
cp .env.example .env # copy env template, edit for your domain
2026-03-09 11:18:22 +01:00
./run-docker-full-stack.sh
```
2026-03-11 10:53:03 +01:00
The script reads root `.env` via `docker compose --env-file .env` and auto-generates secure values for `AUTH_BEARER_TOKEN` and `PRIVATE_SERVER_KEY` when missing.
2026-03-09 11:18:22 +01:00
2026-03-11 10:53:03 +01:00
See [`.env.example`](.env.example) for the full list of environment variables with required/optional grouping, and [`docker/docs/SELF_HOST.md`](docker/docs/SELF_HOST.md) for the complete Docker self-hosting guide.