{"id":19370307,"url":"https://github.com/codam-coding-college/coalition-system","last_synced_at":"2026-02-26T17:27:35.141Z","repository":{"id":258270467,"uuid":"842477051","full_name":"codam-coding-college/coalition-system","owner":"codam-coding-college","description":"Codam's custom coalition system connected to 42's Intranet","archived":false,"fork":false,"pushed_at":"2026-01-15T17:42:55.000Z","size":825,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-16T21:35:47.189Z","etag":null,"topics":["42born2code","codam"],"latest_commit_sha":null,"homepage":"https://coalitions.codam.nl","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/codam-coding-college.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-14T12:36:37.000Z","updated_at":"2026-01-15T17:41:21.000Z","dependencies_parsed_at":"2024-10-23T16:39:52.366Z","dependency_job_id":"d16af365-0a10-4fde-bf8a-ddb8102b0ad8","html_url":"https://github.com/codam-coding-college/coalition-system","commit_stats":null,"previous_names":["codam-coding-college/coalition-system"],"tags_count":132,"template":false,"template_full_name":null,"purl":"pkg:github/codam-coding-college/coalition-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codam-coding-college%2Fcoalition-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codam-coding-college%2Fcoalition-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codam-coding-college%2Fcoalition-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codam-coding-college%2Fcoalition-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codam-coding-college","download_url":"https://codeload.github.com/codam-coding-college/coalition-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codam-coding-college%2Fcoalition-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28667881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["42born2code","codam"],"created_at":"2024-11-10T08:14:56.858Z","updated_at":"2026-01-22T18:14:04.491Z","avatar_url":"https://github.com/codam-coding-college.png","language":"TypeScript","readme":"# Codam's Custom Coalition System\n\nA work in progress.\n\n## To-do list\n\n### Deployment\n- [x] Finalize containerization\n- [x] Switch to containerized postgres database\n\n### Questionnaire\n- [x] Code questionnaire\n- [x] Code questionnaire results\n- [x] Only make questionnaire available between specific dates set by admin\n- [x] Allow users without an assigned coalition to always fill in the questionnaire\n\n### Points system \u0026 tournament\n- [x] Implement Codam's new point system\n- [x] Improve Codam's new point system (add custom project point system, rip out Intra's)\n- [x] Set up automated points system using Intra webhooks\n- [x] Implement Intra's bloc season system\n- [x] Implement a way of assigning bonus points to top ranking students in seasons\n\n### Student interface\n- [x] Create basic dashboard\n- [x] Create basic graphs\n- [x] Create various rankings\n- [x] Create season history overview with historical wins\n\n### Admin / staff interface\n- [x] Create dashboard\n- [x] Create interface for editing the questionnaire\n- [x] Create interface to manually trigger webhooks (manually re-assign automated points)\n- [x] Create interface to fetch potentially missed webhooks between specific dates\n- [x] Create point history interface where admin can delete, recalculate and synchronize points with Intra\n- [x] Create interface to edit automated point system\n- [x] Implement method to recalculate already given points\n- [x] Create interface for manually assigning custom points\n- [x] Create interface for manually assigning points for organizing events\n\n### Intra connection (API \u0026 Webhooks)\n- [x] Implement a way of synchronizing points with Intra\n- [x] Implement a way of averaging out the points on Intra\n- [ ] Implement a way of syncing existing Intra points including historical ones\n- [ ] Find a way of blocking Intra's coalitions_user creation\n- [x] Implement granting titles for top #1 of each ranking at the end of each season\n- [x] Re-implement old [coalition rank titles system](https://github.com/codam-coding-college/coalition-ranks)\n\nIf you're a student and want to contribute to this project, talk to the staff about it first to figure out what is possible and discuss implementation ideas.\n\n## Development\n1. Clone the repository\n2. Fill the `.env` file with the necessary environment variables (don't forget to change the POSTGRES_HOST in the PRISMA_DB_URL variable to localhost)\n3. Run `npm install` to install dependencies\n4. Run `npm run build` to build the project\n5. Start the PostgreSQL database using Docker: `docker-compose -f docker-compose.dev.yml up -d`\n6. Run `npm run start` to start the server and seed the initial database\n7. Optional:\n\t- run `node build/dev/create_quiz_questions.js` to seed the database with initial questionnaire questions\n\t- run `node build/dev/create_rankings.js` to seed the database with initial rankings\n\t- synchronize some data from Intra using the Webhook Catch-up tool in the Admin interface\n\n### Reseed the database\n1. Delete the *.sync-timestamp* file in the root directory\n2. Run `npm run build \u0026\u0026 npm run start`\n\n### Add initial questionnaire questions\nRun `node build/dev/create_quiz_questions.js` after running `npm run build`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodam-coding-college%2Fcoalition-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodam-coding-college%2Fcoalition-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodam-coding-college%2Fcoalition-system/lists"}