{"id":30284704,"url":"https://github.com/faturachmanyusup/pb-learning","last_synced_at":"2026-04-07T08:32:28.674Z","repository":{"id":132463280,"uuid":"418207102","full_name":"faturachmanyusup/pb-learning","owner":"faturachmanyusup","description":"an open online classes","archived":false,"fork":false,"pushed_at":"2022-02-05T07:30:55.000Z","size":1698,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-16T19:30:18.429Z","etag":null,"topics":["e-learning","javascript","nextjs","postgresql","prisma","react"],"latest_commit_sha":null,"homepage":"https://pb-learning.vercel.app","language":"JavaScript","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/faturachmanyusup.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,"zenodo":null}},"created_at":"2021-10-17T17:33:22.000Z","updated_at":"2021-12-05T14:29:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe9e7807-dc36-485e-8102-4d7722c86f7c","html_url":"https://github.com/faturachmanyusup/pb-learning","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/faturachmanyusup/pb-learning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faturachmanyusup%2Fpb-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faturachmanyusup%2Fpb-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faturachmanyusup%2Fpb-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faturachmanyusup%2Fpb-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faturachmanyusup","download_url":"https://codeload.github.com/faturachmanyusup/pb-learning/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faturachmanyusup%2Fpb-learning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["e-learning","javascript","nextjs","postgresql","prisma","react"],"created_at":"2025-08-16T19:15:07.950Z","updated_at":"2026-04-07T08:32:28.659Z","avatar_url":"https://github.com/faturachmanyusup.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PB-Learning\n\nan Open Online Classes App\n\n### Features\n- Create new class (automatically defined as a teacher)\n- Join class using Class ID (automatically defined as a student)\n- Make schedules\n- Make assignments\n- Make assessments\n- Upload assignments\n- Class Forum for chatting\n- Notification by email (later.. maybe)\n- Leaderboard (unnecessary I think, but let's we see later)\n\n\u003cbr\u003e\n\n#### On going\n\nYou can see progress [here](https://pb-learning.vercel.app/)\n\n\u003cbr\u003e\n\n### Test Coverage\n\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eFile\u003c/th\u003e\n      \u003cth\u003eStatements\u003c/th\u003e\n      \u003cth\u003eBranches\u003c/th\u003e\n      \u003cth\u003eFunctions\u003c/th\u003e\n      \u003cth\u003eLines\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cspan\u003eAll File\u003c/span\u003e\u003c/td\u003e\n      \u003ctd\u003e66.85%\u003c/td\u003e\n      \u003ctd\u003e48.05%\u003c/td\u003e\n      \u003ctd\u003e49.32%\u003c/td\u003e\n      \u003ctd\u003e66.67%\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cbr/\u003e\n\n\u003ctable class=\"coverage-summary\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n   \u003cth data-col=\"file\" data-fmt=\"html\" data-html=\"true\" class=\"file\"\u003eFile\u003c/th\u003e\n   \u003cth data-col=\"statements\" data-type=\"number\" data-fmt=\"pct\" class=\"pct\"\u003eStatements\u003c/th\u003e\n   \u003cth data-col=\"branches\" data-type=\"number\" data-fmt=\"pct\" class=\"pct\"\u003eBranches\u003c/th\u003e\n   \u003cth data-col=\"functions\" data-type=\"number\" data-fmt=\"pct\" class=\"pct\"\u003eFunctions\u003c/th\u003e\n   \u003cth data-col=\"lines\" data-type=\"number\" data-fmt=\"pct\" class=\"pct\"\u003eLines\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\t\u003ctd class=\"file medium\" data-value=\"components\"\u003e\u003cspan href=\"components/index.html\"\u003ecomponents\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"57.14\" class=\"pct medium\"\u003e57.14%\u003c/td\u003e\n\t\u003ctd data-value=\"25\" class=\"pct low\"\u003e25%\u003c/td\u003e\n\t\u003ctd data-value=\"25\" class=\"pct low\"\u003e25%\u003c/td\u003e\n\t\u003ctd data-value=\"50\" class=\"pct medium\"\u003e50%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"components/Alert\"\u003e\u003cspan href=\"components/Alert/index.html\"\u003ecomponents/Alert\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"33.33\" class=\"pct low\"\u003e33.33%\u003c/td\u003e\n\t\u003ctd data-value=\"50\" class=\"pct medium\"\u003e50%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"components/Button\"\u003e\u003cspan href=\"components/Button/index.html\"\u003ecomponents/Button\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file low\" data-value=\"components/Card\"\u003e\u003cspan href=\"components/Card/index.html\"\u003ecomponents/Card\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"0\" class=\"pct low\"\u003e0%\u003c/td\u003e\n\t\u003ctd data-value=\"0\" class=\"pct low\"\u003e0%\u003c/td\u003e\n\t\u003ctd data-value=\"0\" class=\"pct low\"\u003e0%\u003c/td\u003e\n\t\u003ctd data-value=\"0\" class=\"pct low\"\u003e0%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file medium\" data-value=\"components/Header\"\u003e\u003cspan href=\"components/Header/index.html\"\u003ecomponents/Header\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"78.57\" class=\"pct medium\"\u003e78.57%\u003c/td\u003e\n\t\u003ctd data-value=\"61.54\" class=\"pct medium\"\u003e61.54%\u003c/td\u003e\n\t\u003ctd data-value=\"37.5\" class=\"pct low\"\u003e37.5%\u003c/td\u003e\n\t\u003ctd data-value=\"78.57\" class=\"pct medium\"\u003e78.57%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"components/Layout\"\u003e\u003cspan href=\"components/Layout/index.html\"\u003ecomponents/Layout\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"81.82\" class=\"pct high\"\u003e81.82%\u003c/td\u003e\n\t\u003ctd data-value=\"0\" class=\"pct low\"\u003e0%\u003c/td\u003e\n\t\u003ctd data-value=\"50\" class=\"pct medium\"\u003e50%\u003c/td\u003e\n\t\u003ctd data-value=\"81.82\" class=\"pct high\"\u003e81.82%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file low\" data-value=\"components/Modal\"\u003e\u003cspan href=\"components/Modal/index.html\"\u003ecomponents/Modal\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"10.71\" class=\"pct low\"\u003e10.71%\u003c/td\u003e\n\t\u003ctd data-value=\"6.67\" class=\"pct low\"\u003e6.67%\u003c/td\u003e\n\t\u003ctd data-value=\"11.11\" class=\"pct low\"\u003e11.11%\u003c/td\u003e\n\t\u003ctd data-value=\"8\" class=\"pct low\"\u003e8%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"config\"\u003e\u003cspan href=\"config/index.html\"\u003econfig\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file low\" data-value=\"libs\"\u003e\u003cspan href=\"libs/index.html\"\u003elibs\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"42.11\" class=\"pct low\"\u003e42.11%\u003c/td\u003e\n\t\u003ctd data-value=\"20\" class=\"pct low\"\u003e20%\u003c/td\u003e\n\t\u003ctd data-value=\"30\" class=\"pct low\"\u003e30%\u003c/td\u003e\n\t\u003ctd data-value=\"42.11\" class=\"pct low\"\u003e42.11%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"pages\"\u003e\u003cspan href=\"pages/index.html\"\u003epages\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003ctd data-value=\"100\" class=\"pct high\"\u003e100%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file medium\" data-value=\"pages/class\"\u003e\u003cspan href=\"pages/class/index.html\"\u003epages/class\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"50\" class=\"pct medium\"\u003e50%\u003c/td\u003e\n\t\u003ctd data-value=\"40\" class=\"pct low\"\u003e40%\u003c/td\u003e\n\t\u003ctd data-value=\"33.33\" class=\"pct low\"\u003e33.33%\u003c/td\u003e\n\t\u003ctd data-value=\"50\" class=\"pct medium\"\u003e50%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003ctr\u003e\n\t\u003ctd class=\"file high\" data-value=\"pages/login\"\u003e\u003cspan href=\"pages/login/index.html\"\u003epages/login\u003c/span\u003e\u003c/td\u003e\n\t\u003ctd data-value=\"85\" class=\"pct high\"\u003e85%\u003c/td\u003e\n\t\u003ctd data-value=\"81.25\" class=\"pct high\"\u003e81.25%\u003c/td\u003e\n\t\u003ctd data-value=\"72.41\" class=\"pct medium\"\u003e72.41%\u003c/td\u003e\n\t\u003ctd data-value=\"85.33\" class=\"pct high\"\u003e85.33%\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cdiv class='footer quiet pad2 space-top1 center small'\u003e\nCode coverage generated by\n\u003ca href=\"https://istanbul.js.org/\" target=\"_blank\"\u003eistanbul\u003c/a\u003e\nat Sun Nov 28 2021 22:51:22 GMT+0700 (Indochina Time)\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaturachmanyusup%2Fpb-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaturachmanyusup%2Fpb-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaturachmanyusup%2Fpb-learning/lists"}