Code Monkey home page Code Monkey logo

wam-calculator's Introduction

The University of Melbourne WinterHack 2021

Team Valkyrie

Group Project Repository

Table of contents

Team Members

Name Student ID Task State
Yu-Wen Michael Zhang 1089117 Authentication of users, database schema and connections Done
Nuoda Yang 1074426 Implement the features of adding assignment scores and the calculation process Done
Hu Chen 1207426 Adding, removing assignment task component and score representations Done
Yifei Wang 1001686 UI Design and front-end UI development Done

contributor:

  • Yu-Wen Michael Zhang: yuwenmichael
  • Hu Chen: Prestonccc
  • Nuoda Yang: NuodaY
  • Yifei Wang: andyfadai, shahuhuyifei (Yifei has two accounts)

Link To Our Website

main page: https://winterhack-valkyrie.herokuapp.com

Link To the Presentation Video

Promotional Video: https://youtu.be/C8UdwksDbeI
Presentation: https://youtu.be/-Pkdv0b_HPw

General info

The website we developed in this project is mainly used to calculate the score that the user need to achieve in every assignment based on a target overall score the user set in the application.

Detailed info

  • This website needs user to login and register so that the user can access the full functionalities. We use passport.js to authenticate user and use bcrypt to encrypt user's password, which makes our website more securer.

Frameworks and tools

  • NodeJs 14.16.X
  • MongoDB Atlas
  • Heroku
  • Handlebar

Instructions of Using code

Clone this repository and install all the dependencies in package.json and type npm start in terminal to run the code. However, you may not be able to run these codes because you cannot access our database. If you intend to do so, we have provide one of our username and password. And you will need to set a passport key, which could be anything you want. Please refer to here: How to access our database.

Test account

Account email: [email protected]
Account password: test12345

How to access our database

We use MongoAtlas to store user information.
Here is our mongoDB connection string:
mongodb+srv://Michael:[email protected]/WAM_Calculator?retryWrites=true&w=majority
You can download MongoDB compass and type this string to connect to our database. Our database name is: WAM_Calculator
Also, you will need to create a new file call .env in your local computer so that you can use our code. Please type the following code in this file:
MONGO_USERNAME=Michael
MONGO_PASSWORD=1234
PASSPORT_KEY=info30005secretkey
This PASSPORT_KEY will allow you to use passport.js while you try to run our code.

How we achieve our calculation process

We calculate the sum of the user's known assignment scores and determine how close the user is to it based on the target score set by the user, and calculate how many points each assignment needs to earn on average to reach the target score among the unentered or upcoming assignment scores.

Let's say there are 3 assignments in total for a subject A, one of them is known. The other two of them will be estimated to see how the target can be reached:
A1: 20/30, A2: X/30, A3: Y/40, Target: 80,
where X is the estimated score of A2, Y is the estimated score of A3.

Step1: X+Y = Target-SumOfKnownScores = 80-20 = 60;
Step2: PercentageLeft = 100-TotalPercentageOfKnownScores = 100-30 = 70;
Step3: RatioA2 = PercentageA2/PercentageLeft = 30/70; RatioA3 = PercentageA3/PercentageLeft = 40/70;
Step4: X = RatioA2*(X+Y) = 3/7x60 = 25.71; Y = RatioA3*(X+Y) = 4/7x60 = 34.29;
Therefore, 25.71 and 34.29 are the estimated target for A2 and A3 computed by our calculator.

Future Improvement

  • Subject details (subject name, overall target score etc.) cannot be changed once you added the subject in homepage.
  • Add overall WAM calculation based on the current added subjects in homepage.

Image Reference

The favicon image is from https://www.pinterest.com.au/pin/57350595241878813/.

wam-calculator's People

Contributors

andyfadai avatar nuoday avatar prestonccc avatar shahuhuyifei avatar yuwenmichael avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.