Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codam-coding-college/coalition-system
Codam's custom coalition system connected to 42's Intranet
https://github.com/codam-coding-college/coalition-system
42born2code codam
Last synced: 3 days ago
JSON representation
Codam's custom coalition system connected to 42's Intranet
- Host: GitHub
- URL: https://github.com/codam-coding-college/coalition-system
- Owner: codam-coding-college
- Created: 2024-08-14T12:36:37.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-31T17:23:46.000Z (13 days ago)
- Last Synced: 2024-10-31T18:20:55.632Z (13 days ago)
- Topics: 42born2code, codam
- Language: TypeScript
- Homepage: https://coalitions.codam.nl
- Size: 344 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Codam's Custom Coalition System
A work in progress.
## To-do list
### Deployment
- [x] Finalize containerization
- [x] Switch to containerized postgres database### Questionnaire
- [x] Code questionnaire
- [x] Code questionnaire results
- [x] Only make questionnaire available between specific dates set by admin
- [x] Allow users without an assigned coalition to always fill in the questionnaire### Points system & tournament
- [x] Implement Codam's new point system
- [x] Improve Codam's new point system (add custom project point system, rip out Intra's)
- [x] Set up automated points system using Intra webhooks
- [ ] Implement Intra's bloc tournament system### Student interface
- [x] Create basic dashboard
- [x] Create basic graphs
- [x] Create various rankings
- [ ] Create tournament history overview with historical wins### Admin / staff interface
- [x] Create dashboard
- [x] Create interface for editing the questionnaire
- [x] Create interface to manually trigger webhooks (manually re-assign automated points)
- [x] Create interface to fetch potentially missed webhooks between specific dates
- [x] Create point history interface where admin can delete, recalculate and synchronize points with Intra
- [x] Create interface to edit automated point system
- [x] Implement method to recalculate already given points
- [ ] Create interface for manually assigning custom points
- [ ] Create interface for manually assigning points for organizing events### Intra connection (API & Webhooks)
- [ ] Implement a way of synchronizing points with Intra
- [ ] Implement a way of averaging out the points on Intra too (bot user with minus points for each coalition?)
- [ ] Implement a way of syncing existing Intra points including historical ones
- [ ] Find a way of blocking Intra's coalitions_user creation
- [ ] Re-implement old [coalition rank system](https://github.com/codam-coding-college/coalition-ranks)If 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.
## Development
1. Clone the repository
2. 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)
3. Run `npm install` to install dependencies
4. Run `npm run build` to build the project
5. Start the PostgreSQL database using Docker: `docker-compose -f docker-compose.dev.yml up -d`
6. Run `npm run start` to start the server and seed the initial database
7. Optional:
- run `node build/dev/create_quiz_questions.js` to seed the database with initial questionnaire questions
- run `node build/dev/create_rankings.js` to seed the database with initial rankings
- synchronize some data from Intra using the Webhook Catch-up tool in the Admin interface### Reseed the database
1. Delete the *.sync-timestamp* file in the root directory
2. Run `npm run build && npm run start`### Add initial questionnaire questions
Run `node build/dev/create_quiz_questions.js` after running `npm run build`