Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Ilyas-Codes/eCourse
A self-hosted SPA to simplify course creation and management
https://github.com/Ilyas-Codes/eCourse
course css customizable e-learning education html javascript online-course pocketbase self-hosted svelte svelte-template tailwind-template tailwindcss template
Last synced: 3 months ago
JSON representation
A self-hosted SPA to simplify course creation and management
- Host: GitHub
- URL: https://github.com/Ilyas-Codes/eCourse
- Owner: Ilyas-Codes
- License: mit
- Created: 2023-12-02T14:10:53.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-28T22:13:53.000Z (9 months ago)
- Last Synced: 2024-05-02T00:44:46.294Z (6 months ago)
- Topics: course, css, customizable, e-learning, education, html, javascript, online-course, pocketbase, self-hosted, svelte, svelte-template, tailwind-template, tailwindcss, template
- Language: JavaScript
- Homepage: https://ecourse.pockethost.io
- Size: 152 KB
- Stars: 387
- Watchers: 8
- Forks: 28
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-pocketbase - GitHub
- awesome-pocketbase - GitHub
README
eCourse is a self-hosted SPA designed to simplify course creation and management, some of the features include:
- ability to create video and text based content
- ability to assign courses to users
- ability to track users progress[Demo](https://ecourse.pockethost.io/)
Use the following credentials for testing the demo:
**Username:** `ilyas`
**Password:** `ecourse123`## Tech Stack
**UI Framework** - [Svelte](https://svelte.dev/)
**CSS** - [TailwindCSS](https://tailwindcss.com/)
**Icons** - [Iconify](https://iconify.design/)
**Backend** - [PocketBase](https://pocketbase.io/)
**Hosting** - [PocketHost](https://pockethost.io/)
## Getting Started
Get started by running the project locally, simply follow these steps:
1. Clone/download the repo
2. Grab the PocketBase executable for your OS from: https://pocketbase.io/docs/ and drop it at the root of the `pb` folder.
3. Start the PocketBase server
```bash
cd pb
./pocketbase serve
```4. Start the Vite server
```bash
cd ui
npm install && npm run dev
```## Customization
App name, logo, and colors can be customized using the `customize.json` file.
## Deployment
One neat thing about PocketBase is that it can also serve our static frontend assets. to do that simply follow these steps:
1. Add the server URL where your PocketBase instance is hosted to `VITE_PROD_PB_URL` in the `.env` file
2. Build a production-ready bundle
```bash
cd ui
npm run build
```3. Copy the contents of the `dist` folder over to `pb_public`
### Using Docker
You can use the following Dockerfile to automate the steps above:
```dockerfile
FROM node:20.11.1-busterWORKDIR /
RUN git clone https://github.com/Ilyas-Codes/eCourse.git
ARG PB_VERSION=0.21.3
ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip
RUN unzip /tmp/pb.zip -d /eCourse/pbWORKDIR /eCourse/ui
RUN sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=http:\/\/127.0.0.1:8090/' .env
RUN npm install
RUN npm run build
RUN mv dist/* /eCourse/pb/pb_publicEXPOSE 8090
CMD ["/eCourse/pb/pocketbase", "serve", "--http=0.0.0.0:8090"]
```## Feedback & Suggestions
Feel free to open an issue/PR if you find any bugs or want to request new features.
## License
Licensed under the MIT License, Copyright © 2024