Code Monkey home page Code Monkey logo

ecourse's Introduction

eCourse - My Courses

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

Use the following credentials for testing the demo:

Username: ilyas
Password: ecourse123

Tech Stack

UI Framework - Svelte

CSS - TailwindCSS

Icons - Iconify

Backend - PocketBase

Hosting - PocketHost

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

cd pb
./pocketbase serve
  1. Start the Vite server
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

cd ui
npm run build
  1. Copy the contents of the dist folder over to pb_public

Using Docker

You can use the following Dockerfile to automate the steps above:

FROM node:20.11.1-buster

WORKDIR /

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/pb

WORKDIR /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_public

EXPOSE 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

ecourse's People

Contributors

ilyas-codes avatar imshallo avatar orohym avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecourse's Issues

Docker support.

Hello. Your project looks really interesting.
Is docker support in the works by any chance ?

SSO support

Really cool project!

I think it would benefit a lot from supporting some identity providers, oidc or oauth2, that would make it really usable for internal course platforms!

Feature: Add timestamp to video

Hello, nice work!
I don't know if it's possible to add timestamps from users that can be shared with others.
like
http://localhost:5173/mycourse/introduction&t=165s

And another cool feature is to add a progression bar for videos, and when you quit, you can replay the video at the timestamp you stopped it before.
So you don't loose time or need to remember when you stop the video the last time.

Fail to authenticate with Password

Hello,

I tried to install eCourse with the docker-compose file provided in Issue #3. I am attempting to log in with a user created from the admin dashboard; however, it's failing. Here are the steps I have followed:

  1. Go to ip_address:port/_ to access the admin panel.
  2. Create a user. I attempted this both with and without an email (email option set to disabled).
  3. Go to ip_address:port.
  4. Click on 'Login/Get access.'
  5. Enter the user/password created in step 2.
  6. Receive error message: 'Login failed. Please check your credentials and try again.

I checked the networking tab in my browser and noticed that it's attempting to reach 'https://ecourse.pockethost.io/api/collections/users/auth-with-password' (see screenshot).
ecourse
Moreover, when I am logging in with the demo user/password, the login is successful. However, the courses I have created in the admin panel are not showing up.

Web browser : Firefox

docker-compose file?

I'd like to try it out, as looks promising, but I can't find docker-compose.yaml on your github.
Can you create one? I am sure it will enable much wider adoption.

PocketBase 404 with Dockerfile

Description

Users experience a PocketBase 404 (Not Found) error when accessing the frontend via the designated IP address, despite the backend working properly.

Steps to Reproduce

  1. Clone the dockerfile
  2. Build and run the Docker container using the dockerfile
  3. Access the frontend using the designated IP address

Expected Behavior

Users should be able to access the frontend interface without encountering a 404 error.

Frontend View
Backend View

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.