{"id":14155131,"url":"https://github.com/Ilyas-Codes/eCourse","last_synced_at":"2025-08-06T00:33:28.833Z","repository":{"id":210408772,"uuid":"726475752","full_name":"Ilyas-Codes/eCourse","owner":"Ilyas-Codes","description":"A self-hosted SPA to simplify course creation and management","archived":false,"fork":false,"pushed_at":"2024-07-04T19:03:23.000Z","size":156,"stargazers_count":437,"open_issues_count":6,"forks_count":31,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-08-18T08:04:49.051Z","etag":null,"topics":["course","css","customizable","e-learning","education","html","javascript","online-course","pocketbase","self-hosted","svelte","svelte-template","tailwind-template","tailwindcss","template"],"latest_commit_sha":null,"homepage":"https://ecourse.pockethost.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ilyas-Codes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"Ilyas-Codes"}},"created_at":"2023-12-02T14:10:53.000Z","updated_at":"2024-08-15T09:59:15.000Z","dependencies_parsed_at":"2024-02-27T12:49:48.713Z","dependency_job_id":null,"html_url":"https://github.com/Ilyas-Codes/eCourse","commit_stats":null,"previous_names":["ilyas-codes/ecourse"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyas-Codes%2FeCourse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyas-Codes%2FeCourse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyas-Codes%2FeCourse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ilyas-Codes%2FeCourse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ilyas-Codes","download_url":"https://codeload.github.com/Ilyas-Codes/eCourse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228821396,"owners_count":17977164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["course","css","customizable","e-learning","education","html","javascript","online-course","pocketbase","self-hosted","svelte","svelte-template","tailwind-template","tailwindcss","template"],"created_at":"2024-08-17T08:02:11.760Z","updated_at":"2024-12-09T02:30:57.266Z","avatar_url":"https://github.com/Ilyas-Codes.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://ecourse.pockethost.io/\" target=\"_blank\" rel=\"noopener\"\u003e\n        \u003cimg src=\"https://i.ibb.co/Sx7YmY6/ecourse.jpg\" alt=\"eCourse - My Courses\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\neCourse is a self-hosted SPA designed to simplify course creation and management, some of the features include:\n\n- ability to create video and text based content\n- ability to assign courses to users\n- ability to track users progress\n\n[Demo](https://ecourse.pockethost.io/)\n\nUse the following credentials for testing the demo:\n\n**Username:** `ilyas`  \n**Password:** `ecourse123`\n\n## Tech Stack\n\n**UI Framework** - [Svelte](https://svelte.dev/)\n\n**CSS** - [TailwindCSS](https://tailwindcss.com/)\n\n**Icons** - [Iconify](https://iconify.design/)\n\n**Backend** - [PocketBase](https://pocketbase.io/)\n\n**Hosting** - [PocketHost](https://pockethost.io/)\n\n## Getting Started\n\nGet started by running the project locally, simply follow these steps:\n\n1. Clone/download the repo\n\n2. Grab the PocketBase executable for your OS from: https://pocketbase.io/docs/ and drop it at the root of the `pb` folder.\n\n3. Start the PocketBase server\n\n```bash\ncd pb\n./pocketbase serve\n```\n\n4. Start the Vite server\n\n```bash\ncd ui\nnpm install \u0026\u0026 npm run dev\n```\n\n## Customization\n\nApp name, logo, and colors can be customized using the `customize.json` file.\n\n## Deployment\n\nOne neat thing about PocketBase is that it can also serve our static frontend assets. to do that simply follow these steps:\n\n1. Add the server URL where your PocketBase instance is hosted to `VITE_PROD_PB_URL` in the `.env` file\n\n2. Build a production-ready bundle\n\n```bash\ncd ui\nnpm run build\n```\n\n3. Copy the contents of the `dist` folder over to `pb_public`\n\n### Using Docker\n\nYou can use the following Dockerfile to automate the steps above:\n\n```dockerfile\nFROM node:20.11.1-buster\n\nWORKDIR /\n\nRUN git clone https://github.com/Ilyas-Codes/eCourse.git\n\nARG PB_VERSION=0.21.3\nADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip\nRUN unzip /tmp/pb.zip -d /eCourse/pb\n\nWORKDIR /eCourse/ui\n\nRUN sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=http:\\/\\/127.0.0.1:8090/' .env\nRUN npm install\nRUN npm run build\nRUN mv dist/* /eCourse/pb/pb_public\n\nEXPOSE 8090\n\nCMD [\"/eCourse/pb/pocketbase\", \"serve\", \"--http=0.0.0.0:8090\"]\n```\n\n## Feedback \u0026 Suggestions\n\nFeel free to open an issue/PR if you find any bugs or want to request new features.\n\n## License\n\nLicensed under the MIT License, Copyright © 2024\n","funding_links":["https://github.com/sponsors/Ilyas-Codes"],"categories":["Showcases","tailwindcss"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIlyas-Codes%2FeCourse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIlyas-Codes%2FeCourse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIlyas-Codes%2FeCourse/lists"}