{"id":21258511,"url":"https://github.com/ubc/ipeer4","last_synced_at":"2026-03-10T23:02:07.526Z","repository":{"id":162314518,"uuid":"636892226","full_name":"ubc/ipeer4","owner":"ubc","description":"Rewrite of iPeer using Laravel","archived":false,"fork":false,"pushed_at":"2023-10-06T08:42:07.000Z","size":292,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-14T04:53:44.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubc.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,"publiccode":null,"codemeta":null}},"created_at":"2023-05-05T22:48:18.000Z","updated_at":"2024-05-10T23:31:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"edae49ea-4ebc-48b8-bab2-1ca8350757e9","html_url":"https://github.com/ubc/ipeer4","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ubc/ipeer4","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubc%2Fipeer4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubc%2Fipeer4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubc%2Fipeer4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubc%2Fipeer4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubc","download_url":"https://codeload.github.com/ubc/ipeer4/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubc%2Fipeer4/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30360530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"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":[],"created_at":"2024-11-21T04:09:12.750Z","updated_at":"2026-03-10T23:02:07.488Z","avatar_url":"https://github.com/ubc.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Start the development docker:\n\nMake a copy of .env.example to .env, then bring up the docker compose:\n\n`./vendor/bin/sail up`\n\nRun the hot module replacement:\n\n`./vendor/bin/sail npm run dev`\n\nLaravel Sail is just a frontend to docker compose, you can pass it commands to execute in the app container:\n\n`./vendor/bin/sail artisan test`\n\n`./vendor/bin/sail composer dump-autoload`\n\nThe site is available at: http://localhost:8400/\n\nThe database frontend Adminer is available at: http://localhost:8401\n\n## Authorization System\n\nRoles \u0026 permissions are managed using the laravel-permission library.\n\nWe have two broad types of roles \u0026 permissions: System or course.  System\npermissions apply to the entire app. Course permissions apply only inside the\ncourse you're enroled in. For example, an admin is a system role and has access\nto every. A student is a course role and they can only see courses they're\nenroled in. In older iPeer 3, there is no such separation, and there are only\nsystem roles. So we had issues where some users (TAs) were students in some\ncourses but instructors in others needed to have two separate accounts for each\nof those roles. The course-specific roles are meant to address this.\n\n### Custom fields in roles \u0026 permissions\n\nPermission:\n\n* desc - text description field\n* is_template - boolean indicating whether this is a course permission template\n\nRole:\n\n* desc - text description field\n* is_system - boolean indicating whether this is a system role\n* is_template - booleaning indicating whether this is a course role template\n* course_id - if a course-specific role, which course it's for\n\n## Environment Variables\n\nWhen seeding the database, a default admin user is created, the default admin user credentials can be specified via these env vars:\n\n* ADMIN_USERNAME - default admin user's username\n* ADMIN_PASSWORD - default admin user's password\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubc%2Fipeer4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubc%2Fipeer4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubc%2Fipeer4/lists"}