Skip to content

Bachelorproject-Spring-22/backend

Repository files navigation

uniLeague

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. 🌳

Demo

A live demo of the project can be found here: https://unileague.games/

Tech Stack

Client: React

Server: Node.js, MongoDB

Features

  • 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

Run Locally

Clone the project

  git clone https://github.com/Bachelorproject-Spring-22/frontend.git

  git clone https://github.com/Bachelorproject-Spring-22/backend.git

Go to the project directory

  cd Bachelorproject-Spring-22

Install dependencies

  npm install

Start the server

  npm run start

Screenshots

App Screenshot App Screenshot App Screenshot

Authors

License

MIT

Folder structure

Source: https://medium.com/codechef-vit/a-better-project-structure-with-express-and-node-js-c23abc2d736f

  1. Controllers- contains all the functions
  2. Routes- contains all the routes
  3. Models- contains all the schemas
  4. Middleware- contains all the middlewares
  5. Utils- contains common functions
  6. Templates- contains templates f.ex email etc.
  7. Config- contains configuration for services like passport

Routes

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •