feat: migrate docs from Nextra to Fumadocs (#606)
* feat: checkpoint * feat: Migrate docs to Fumadocs * chore: docs layout * chore: - remove home route - make docs home route - remove docs prefix * chore: docs layout * chore: - reorder sidebar - fix home page redirect * chore: rename package to avoid error during pnpm clean * chore: remove private and sideEffects properties from package.json * chore: requested fixes * feat: update fumadocs layout * feat: hide theme switch on sidebar * add /docs * feat: enhance documentation and layout with new guides and updates - Added multiple how-to guides for creating courses, exercises, and managing organization settings. - Updated existing documentation for clarity and consistency, including renaming sections for better navigation. - Introduced new assets such as logos and favicon for improved branding. - Modified layout components to enhance user experience and visual appeal. - Updated package dependencies to include lucide-react for icon usage. * chore: update pnpm-lock.yaml with dependency version changes * add favicon * fix: update links in documentation for consistency - Corrected the links in the create-exercise and signup guides to ensure they point to the correct paths, enhancing clarity and navigation for users. * delete docs --------- Co-authored-by: Rotimi Best <[email protected]>
This commit is contained in:
co-authored by
Rotimi Best
parent
ac1a05f006
commit
2526f4c227
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"signup": "Sign Up",
|
||||
"onboarding": "Onboarding",
|
||||
"self-hosting": "Self-hosting"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Onboarding
|
||||
description: Your onboarding checklist after creating an account.
|
||||
---
|
||||
|
||||
|
||||
Welcome again to ClassroomIO and we are super excited you are giving it a try. On this page you will find your onboarding checklist, the first thing you need to do after you've created an account.
|
||||
|
||||
1. Set your profile picture
|
||||
2. Set your organization details
|
||||
3. Customize your organization landing page
|
||||
4. Create your first course
|
||||
5. Share your course with students
|
||||
@@ -0,0 +1,170 @@
|
||||
---
|
||||
title: Self-hosting ClassroomIO
|
||||
description: Guide to self-hosting ClassroomIO on your own servers.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
This guide will help you quickly self-host ClassroomIO.
|
||||
|
||||

|
||||
|
||||
ClassroomIO is made up of the following applications:
|
||||
|
||||
- [apps/api](https://github.com/rotimi-best/classroomio/tree/main/apps/api) - an Express server
|
||||
- [apps/dashboard](https://github.com/rotimi-best/classroomio/tree/main/apps/dashboard) - the admin dashboard + LMS
|
||||
- [supabase](https://github.com/rotimi-best/classroomio/tree/main/supabase) - the database + REST API
|
||||
|
||||
The quickest and easiest way to deploy both the api and dashboard is by using our [Railway Template](https://railway.app/template/dl9RG7?referralCode=8OyIj5). However there are a couple of things that you'd need first before heading over to the template, which are:
|
||||
|
||||
1. SMTP values - For sending emails on the api
|
||||
2. Supabase - For the database used on the dashboard
|
||||
3. Cloudflare R2 (optional) - Video uploads on the api
|
||||
|
||||
## SMTP Setup
|
||||
|
||||
Both for the supabase and api setup, you'd need a custom SMTP for email sending. Most importantly you need these values:
|
||||
|
||||
```zsh title="env"
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=
|
||||
SMTP_USER=
|
||||
SMTP_PASSWORD=
|
||||
SMTP_SENDER=
|
||||
```
|
||||
|
||||
Make sure you have them handy because you'd need them while we go through this self-hosting guide.
|
||||
|
||||
<Callout title="Learn More">
|
||||
Learn more about setting up a custom SMTP server
|
||||
[here](https://supabase.com/docs/guides/auth/auth-smtp)
|
||||
</Callout>
|
||||
|
||||
## Supabase
|
||||
|
||||
There are 2 options to go about setting up Supabase, you could [self-host supabase](https://supabase.com/docs/guides/self-hosting) on your own servers or you could use their cloud version. We recommend you use the cloud version because it has a very generous free tier and you get to deploy it very quickly.
|
||||
|
||||
We have a standalone guide to help you setup your Supabase Cloud and you can find it [here](/docs/contributor-guides/supabase-cloud).
|
||||
|
||||
After you go through that guide you will need the following environment variables, please also store them somewhere:
|
||||
|
||||
```zsh title="env"
|
||||
PUBLIC_SUPABASE_URL=
|
||||
PUBLIC_SUPABASE_ANON_KEY=
|
||||
PRIVATE_SUPABASE_SERVICE_ROLE=
|
||||
```
|
||||
|
||||
## Cloudflare R2
|
||||
|
||||
We use Cloudflare R2 for video uploading within the course builder. It is not required though and you can do without it in the app if you don't need video upload.
|
||||
|
||||
<Callout title="Work in Progress">This section is a work in progress.</Callout>
|
||||
|
||||
## Deploy on Railway
|
||||
|
||||
Now you have everything you need and you are ready to deploy the api and dashboard.
|
||||
|
||||
Go ahead and click this button to get started.
|
||||
|
||||
[](https://railway.app/template/dl9RG7?referralCode=8OyIj5)
|
||||
|
||||
### Environment Variables
|
||||
|
||||
#### cio-api
|
||||
|
||||
```zsh title="env"
|
||||
# Required
|
||||
SMTP_HOST=""
|
||||
SMTP_PORT=""
|
||||
SMTP_USER=""
|
||||
SMTP_SENDER=""
|
||||
SMTP_PASSWORD=""
|
||||
PUBLIC_SUPABASE_URL=""
|
||||
PUBLIC_SUPABASE_ANON_KEY=""
|
||||
|
||||
# Optional
|
||||
CLOUDFLARE_BUCKET_ID=""
|
||||
CLOUDFLARE_ACCESS_KEY=""
|
||||
CLOUDFLARE_ACCOUNT_ID=""
|
||||
CLOUDFLARE_BUCKET_DOMAIN=""
|
||||
CLOUDFLARE_SECRET_ACCESS_KEY=""
|
||||
SENTRY_DNS=""
|
||||
```
|
||||
|
||||
<Callout title="Learn More">
|
||||
Learn more about the environment variables
|
||||
[here](https://github.com/rotimi-best/classroomio/blob/main/apps/api/.env.example)
|
||||
</Callout>
|
||||
|
||||
#### cio-dashboard
|
||||
|
||||
```zsh title="env"
|
||||
# Required
|
||||
PUBLIC_SUPABASE_URL=""
|
||||
PUBLIC_SUPABASE_ANON_KEY=""
|
||||
PRIVATE_SUPABASE_SERVICE_ROLE=""
|
||||
PUBLIC_SERVER_URL=""
|
||||
|
||||
# Optional
|
||||
OPENAI_API_KEY=""
|
||||
PUBLIC_IP_REGISTRY_KEY=""
|
||||
UNSPLASH_API_KEY=""
|
||||
PRIVATE_APP_HOST=""
|
||||
PRIVATE_APP_SUBDOMAINS=""
|
||||
```
|
||||
|
||||
<Callout title="Learn More">
|
||||
Learn more about the environment variables
|
||||
[here](https://github.com/rotimi-best/classroomio/blob/main/apps/dashboard/.env.example)
|
||||
</Callout>
|
||||
|
||||
## Using Docker
|
||||
|
||||
We provide a docker-compose configuration to deploy both the api and dashboard services. Here's how to use it:
|
||||
|
||||
1. Clone the repository:
|
||||
|
||||
```zsh title="Terminal"
|
||||
git clone https://github.com/rotimi-best/classroomio.git
|
||||
cd classroomio
|
||||
```
|
||||
|
||||
2. Create a `.env` file with your environment variables (see Environment Variables section above)
|
||||
|
||||
3. Start the services:
|
||||
|
||||
```zsh title="Terminal"
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
The services will be available at:
|
||||
|
||||
- Dashboard: http://localhost:3082
|
||||
- Backend: http://localhost:3081
|
||||
|
||||
### Service Configuration
|
||||
|
||||
The docker-compose file sets up two services:
|
||||
|
||||
#### Backend Service
|
||||
|
||||
- Runs on port 3081
|
||||
- Uses Node.js slim image
|
||||
- Mounts the api code directory
|
||||
- Requires environment variables for:
|
||||
- Supabase configuration
|
||||
- Cloudflare R2 for video uploads
|
||||
- SMTP for email notifications
|
||||
|
||||
#### Dashboard Service
|
||||
|
||||
- Runs on port 3082
|
||||
- Uses Node.js Alpine image
|
||||
- Uses pnpm for package management
|
||||
- Requires environment variables for:
|
||||
- Supabase configuration
|
||||
- Application settings
|
||||
- Optional API keys (OpenAI, Unsplash)
|
||||
|
||||
Note: We're currently working on including Supabase in the docker-compose file. If you'd like to help with this, please open a PR on GitHub! 👍
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: Sign Up for ClassroomIO
|
||||
description: Get started with ClassroomIO by signing up for an account.
|
||||
---
|
||||
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
If you're new to ClassroomIO, you must create an account to set up and launch your organization. By signing up, you'll gain access to all the [exciting features we offer](/docs/what-is-classroomio#key-features) to supercharge your classroom.
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
### Go to the Signup Page
|
||||
|
||||
Navigate to [app.classroomio.com](https://app.classroomio.com) and click the **Signup** button at the top right corner of the page.
|
||||
|
||||

|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Fill the Signup Form
|
||||
|
||||
On the signup page, enter your **valid email address**. Next, create a secure password with a **minimum of 6 characters** and confirm it. Click **Create Account**.
|
||||
|
||||
You can also sign up using your Google account.
|
||||
|
||||

|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Complete the Onboarding
|
||||
|
||||
After completing the Signup form, you'll be redirected to the **Onboarding** page. There, you'll provide your **Full Name** and **Name of Organization.** As you enter your organization name, the **Organization Site Name** field will auto-fill. To proceed, click **Continue**.
|
||||
|
||||

|
||||
|
||||
Next, you'll complete a brief survey regarding what brought you to ClassroomIO and how you discovered our platform. Your responses will help us tailor ClassroomIO's features to best suit your needs. Finally, click **Continue** to submit.
|
||||
|
||||

|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Welcome to the Dashboard
|
||||
|
||||
You are successfully signed up and ready to use ClassroomIO when you see the dashboard.
|
||||
|
||||

|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### What Next?
|
||||
|
||||
After signing up successfully, you can now set up and [customize your Organization](/docs/how-to-guides/customize-organization).
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
Reference in New Issue
Block a user