{"id":14984735,"url":"https://github.com/nafizpervez/online_learning_platform","last_synced_at":"2026-01-07T12:30:51.806Z","repository":{"id":242373263,"uuid":"733612640","full_name":"nafizpervez/Online_Learning_Platform","owner":"nafizpervez","description":"Online Learning Platform for students to enroll into courses, for admins to create courses and handle the enrollment and to generate card list of courses and it's enrollments.","archived":false,"fork":false,"pushed_at":"2024-06-02T14:58:40.000Z","size":243,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-02T18:45:22.510Z","etag":null,"topics":["docker","docker-compose","fastapi","fastapi-docker","github-actions","jenkins-pipeline","kubernetes","nextjs","postgresql","pydantic-models","pytest","python","react","sqlalchemy","sqlite","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nafizpervez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2023-12-19T18:10:06.000Z","updated_at":"2024-06-05T02:13:54.000Z","dependencies_parsed_at":"2024-06-02T16:29:06.829Z","dependency_job_id":"0f1a8157-1c4d-48d4-9b77-c5bc5938d938","html_url":"https://github.com/nafizpervez/Online_Learning_Platform","commit_stats":null,"previous_names":["nafizpervez/online_learning_platform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nafizpervez%2FOnline_Learning_Platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nafizpervez%2FOnline_Learning_Platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nafizpervez%2FOnline_Learning_Platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nafizpervez%2FOnline_Learning_Platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nafizpervez","download_url":"https://codeload.github.com/nafizpervez/Online_Learning_Platform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246076939,"owners_count":20719894,"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":["docker","docker-compose","fastapi","fastapi-docker","github-actions","jenkins-pipeline","kubernetes","nextjs","postgresql","pydantic-models","pytest","python","react","sqlalchemy","sqlite","tailwindcss","typescript"],"created_at":"2024-09-24T14:09:35.335Z","updated_at":"2026-01-07T12:30:51.797Z","avatar_url":"https://github.com/nafizpervez.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Online Learning Platform\n\nA full-stack Online Learning Platform designed for publishing and managing online courses where students register, attend classes, and take scheduled tests, while teachers conduct and manage multiple courses. A structured scheduling system ensures students cannot join overlapping sessions, promoting disciplined learning.\n\nThe platform features a clean and intuitive Next.js frontend with a robust FastAPI backend, fully testable through Swagger UI and Postman. Database support includes both PostgreSQL and MySQL, with SQLAlchemy adapters enabling seamless switching between databases.\n\nTo ensure scalability and reliability, the entire system is containerized using Docker and Docker Compose, with CI/CD pipelines powered by GitHub Actions and Jenkins as an alternative. Database validation and monitoring are facilitated through pgAdmin (Postgres) and SQL readers (MySQL).\n\nThis project highlights expertise in modern web application development, combining scalable architecture, seamless DevOps integration, and user-focused design.\n\n## Build Steps for the whole container (backend, postgres, pgadmin)\n\nrun docker container\n\n```\ndocker compose up\n```\n\n## Build steps only the backend\n\nbuild newer image command:\n\n```\ndocker build -t  online_learning_image .\n```\n\ndocker run command:\n\n```\ndocker run -d --name demo_python -p 8000:8000 online_learning_image\n```\n\nremove older image command:\n\n```\ndocker stop demo_python \u0026\u0026 docker rm demo_python\n```\n\n## run tests\n\n```\npytest test/test_main.py\n```\n\n## run without docker\n\nstart postgreg database server in the cmd\n\n```\npg_ctl start -D \"C:\\Program Files\\PostgreSQL\\16\\data\"\n```\n\ninstall dependencies\n\n```\npip install --no-cache-dir --upgrade -r requirements.txt\n```\n\nrun uvicorn\n\n```\nuvicorn app.main:app --reload\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnafizpervez%2Fonline_learning_platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnafizpervez%2Fonline_learning_platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnafizpervez%2Fonline_learning_platform/lists"}