uniLeague is a way to improve your learning by actively participating in class. You collect points by answering quizzes and participating in class. uniLeague is a new way to keep track of your own learning results.
uniLeague is a bachelor project for the web development degree at NTNU Gjøvik. Its task is to measure student engagement based on the usage of Kahoot! - an interactive quiz tool. The project's purpose is to find factors that determine if a student will be engaged by using Kahoot - or simply going through the lecture.
When designing uniLeague, we always aim to consider the environment. In fact, uniLeague is built with sustainability in mind. uniLeague is more environmentally friendly than 90% of other websites. Some of our happy green practices include a dark color palette and minimal use of fonts and symbols to reduce energy consumption and carbon dioxide emissions, as well as to display all essential information without loading multiple pages. 🌳
A live demo of the project can be found here: https://unileague.games/
Client: React
Server: Node.js, MongoDB
- Upload quiz results to the platform
- Delete quizzes
- View class/semester/study leaderboard
- View personal stats on the "My Results" page
- See a graphical representation of your quixperformence
- Select a time frame to see how the leaderboard looks during that time
- Sustainable design
Clone the project
git clone https://github.com/Bachelorproject-Spring-22/frontend.git
git clone https://github.com/Bachelorproject-Spring-22/backend.gitGo to the project directory
cd Bachelorproject-Spring-22Install dependencies
npm installStart the server
npm run start- Cornelius Ottar Sandmæl - @sandmal
- Glenn Eirik Hansen - @glennispotatis
- Tom Schrier - @TomSchrier
Source: https://medium.com/codechef-vit/a-better-project-structure-with-express-and-node-js-c23abc2d736f
- Controllers- contains all the functions
- Routes- contains all the routes
- Models- contains all the schemas
- Middleware- contains all the middlewares
- Utils- contains common functions
- Templates- contains templates f.ex email etc.
- Config- contains configuration for services like passport
POST / | Input: File && courseId GET / | Get course ids from admin user GET /programme | Get all studyplans POST /programme | Input: object {"studyProgrammeCode": array of studyProgrammeCode(s)} GET /courses | Get course info from user subscribed studyplans GET /courses/:courseId | Get course and quiz info from user subscribed studyplans DELETE /courses/:courseId/:quizId' | Params: courseId && quizId ROUTE superAdmin '/superAdmin' POST /user | Input: Username, role, email, password, programmeCode, year POST /course | Input: code, name, credits, year, semester, activities POST /programme | Input: ProgrammeCode, year, name, startTerm, semesters PATCH /programme/:studyProgrammeCode | Input: array[username(s)] PATCH /programme/:courseId | Input: periodNumber, courseId


