{"id":20221878,"url":"https://github.com/sp35/sulearn","last_synced_at":"2026-04-03T10:34:01.107Z","repository":{"id":53504993,"uuid":"351140826","full_name":"sp35/SULearn","owner":"sp35","description":"E-Learning Platform - a Student's Union Technical Team recruitment task","archived":false,"fork":false,"pushed_at":"2021-03-31T15:32:31.000Z","size":3,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T16:44:51.072Z","etag":null,"topics":["django","elearning-platform"],"latest_commit_sha":null,"homepage":"","language":null,"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/sp35.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}},"created_at":"2021-03-24T16:00:18.000Z","updated_at":"2022-07-08T20:03:42.000Z","dependencies_parsed_at":"2022-09-18T22:55:44.473Z","dependency_job_id":null,"html_url":"https://github.com/sp35/SULearn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sp35/SULearn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp35%2FSULearn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp35%2FSULearn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp35%2FSULearn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp35%2FSULearn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sp35","download_url":"https://codeload.github.com/sp35/SULearn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sp35%2FSULearn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018625,"owners_count":26086404,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["django","elearning-platform"],"created_at":"2024-11-14T06:54:36.393Z","updated_at":"2025-10-14T09:35:47.691Z","avatar_url":"https://github.com/sp35.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# SULearn - E-Learning Platform\n\n[\u003cimg align=\"left\" height=150 width=250 src=\"https://i.ytimg.com/vi/iOHq7BWFQRc/maxresdefault.jpg\"\u003e](www.algoexpert.io)\n\u003cbr\u003e _So, you wanna be a backend developer at SUTT...xD._\n\nYou have to design an e-learning platform. This one's a bit challenging but you'll eventually learn a lot from developing this. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### Users\n\nThis platform will have two types of users -\n\n1. **Creators**\n2. **Viewers**\n\nCreators upload **courses**, which are divided into **modules**. Any viewer can enroll in these courses. The viewer takes the course module by module, **marking them as complete**. The course taken is completed only when all its modules have been marked as completed. Once the course is complete, the viewer will have the option to **rate and review** it.\n\nOn the home page, the courses would be displayed to the user, preferably under individuals sections by their **tags**. The user will also have the option to **search** for a course using keywords or using tags as filters.\n\nEach user will have a **profile** page that will show the user's personal details, the courses enrolled - completed and ongoing, or in case of creators - the courses uploaded by them.\n\nEach course will have a dedicated page where one can see the various modules, their creator, course rating, and reviews.\n\n### Model Attributes\n\nEach user will have a `uid`, `name`, `email`, `dob`, `city`, `state` and `date of joining platform`.\nCreators should have additional fields such as `educational qualifications`, `rating`.\n\nCourses - `creator`, `rating`, `reviews`, `modules`\n\nTags - such as computer science, marketing, business, personal development, etc.\n\n### Authentication\n\nEach user should be able to register/login via Google OAuth. You are free to use a package called [django-allauth](https://wsvincent.com/django-allauth-tutorial/). Upon Google Oauth, the user should be able to choose the account type - creator or viewer and should be asked to fill in their details. Register the user in the database only when you have the required details.\n\n### Bonus Tasks\n\n1. **Follow + Following** - A viewer can follow a creator for updates on his new courses. You can implement this by sending **email notifications** to the user using `SMTP` or `Sendgrid API`. It would be desirable to also add a section on the home page that would show the courses uploaded by the user's following.\n2. **Digital proof of completion** - each viewer can share a link that will act as proof of completion. It can be in the form of a mock certificate that would feature the user, the course, and the date of completion.\n\n### Deployment\n\nThe project should be deployed on a desirable platform such as Heroku, Pythonanywhere, AWS, Digital Ocean, etc.\n\n### My Take\n\nDon't be overwhelmed by the magnitude of the task, focus on the subtasks instead and finish them one by one. Be creative and feel free to assume the minor details as you like. We don't expect you to build a proper frontend for this task. You are free to use any public template or use any CSS framework such as Bulma or Bootstrap.\n\nIn case you are stuck on any subtask, please feel free to contact us, we would be happy to discuss your approach to direct you in the right direction.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsp35%2Fsulearn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsp35%2Fsulearn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsp35%2Fsulearn/lists"}