OwnCourses allows You to create unlimited courses, define your course modules, and lessons and give access to them for Your students. This server application provides API used by student portal application (build in react).
All of that can be installed on Your own server for free.
- Courses
- Course covers
- Course status (visible/hidden)
- Course start/end
- All course attachments
- Module
- Lessons
- Lesson completion API
- Lesson covers
- Lesson attachments
- Lesson duration
- Basic admin panel
- Users
- Login
- Password reset
- User courses
- Module/Course progress based on completed lessons and duration
- Course authors
- Image, name, bio, courses
- Settings
- Emails settings
- Notifications
- Add new notification
- List notifications
- Mark already read notifications
- Mark notifications as read by user
- Lesson homework tasks (mark as completed, left comments, interact with course author)
- Users
- Users progress in course (finished lessons, time spend in platform)
- Users questions about homework's
Add owncourses.test to you /etc/hosts
127.0.0.1 owncourses.test
Run docker infrastructure
cd docker/
docker-compose build
docker-compose up -d
docker-compose exec app composer install
Create local config file .env.dev.local
(in project root directory - not /docker) with content:
DATABASE_URL=pgsql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_POST}/${POSTGRES_DB}
Create database and schema
docker-compose exec app bin/console doctrine:migrations:migrate
Create admin user
docker-compose exec app bin/console app:user:create [email protected] testPassword Test User
docker-compose exec app bin/console app:user:promote [email protected] ROLE_ADMIN
Open http://owncourses.test/admin
in Your browser
openssl genrsa -out config/jwt/private.pem -aes256 4096 # set this value as JWT_SECRET_KEY env variable
openssl rsa -pubout -in config/jwt/private.pem -out config/jwt/public.pem # set this value as JWT_PUBLIC_KEY env variable