Giter VIP home page Giter VIP logo

dcalc's People

Contributors

declanbyrd avatar ear1grey avatar geekyaubergine avatar jacekkopecky avatar msrcodes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dcalc's Issues

Module name auto complete

With a static list of all modules taught in the last 5 years we could offer auto-complete as module names are entered.

GPA Predictor

To calculate GPA.

  • Marks are rounded (.5 rounds up)
  • Add 1 to any 9s
  • Convert using this table [from, to, GP]
        [
            [ 75, 100, 4.25 ],
            [ 71, 74, 4.00 ],
            [ 67, 70, 3.75 ],
            [ 64, 66, 3.50 ],
            [ 61, 63, 3.25 ],
            [ 57, 60, 3.00 ],
            [ 54, 56, 2.75 ],
            [ 50, 53, 2.50 ],
            [ 48, 48, 2.25 ],
            [ 43, 47, 2.00 ],
            [ 40, 42, 1.50 ],
            [ 38, 38, 1.00 ],
            [ 35, 37, 0.75 ],
            [ 30, 34, 0.50 ],
            [ 0, 28 0.00 ]
        ]

Offline App

Make app work offline for Android, iOS & Desktop.

  • Add icon
  • Add manifest
  • Add code (a cacheing "Service Worker")

Alternative Structures

Currently the basic BSc structure for Technology is handled.
What about other degrees (e.g. M.Eng)?

Lookup Module Names

There is a database of all modules.
It would be nice to get an (annual?) export from that or look them up on demand.
(...or just maintain a list by contribution.)

Check final marks are all 40

Rule C currently indicates a 2-2 for 60% in projects but 0 in other modules.

Calculator should not give an indication if any marks in final year are below 40 (L5 marks could have been compensated)

Inputting a value above 100 cause the GPA to be calculated in the negatives

Issue

Inputting a value above 100 cause the GPA to be calculated in the negatives

Description

If you input a number in any of the marking boxes that are greater than 100 (the limit), it will reset the value to 100 but the GPA will behave strangely. Giving a value such as "-237.14"

Expected Behaviour

GPA should not calculate until after the number has been reset to 100 (or below)

df741310fff62c34c29342a01f59aad0

Validation

Ensure app has sensible and helpful validation so that incorrect or incomplete data leaves the user knowing what to do next.

Part Time Calculator

Hello,

Could you consider removing the requirement for the 2nd year units? For example I'm doing a 3rd year only distance learning top up. However cannot use the calculator.

Thanks!

Cannot install degree calculator as pwa

Expected Behavior

As this repo has a service worker and application manifest, the user should be able to install the application.

Current Behavior

There is no install prompt shown. When inspecting the manifest using the application tab of Chrome dev tools, there are warnings shown.

Steps to Reproduce

  1. Navigate to https://portsoc.github.io/dcalc/ using Google Chrome.
  2. Attempt to add the application to the home screen.

Context (Environment)

  • Android Smartphone: Googe Chrome v83
  • Desktop: Google Chrome v83

Possible Solution

  • Fix the warnings that are shown when inspecting the manifest.

Direct Entry

We should have an obvious way for direct entry students whose grades are only calculated using rule B to use the tool. At the moment the solution for them is to enter 1 in each Y2 column

Remove 40 defaults

We added 40% as the default grade to speed up our in-lecture testing. That needs to be removed.

Tab Order

Current Tab order goes Name -> Grade -> Name -> Grade
Should it go Name -> Name -> Name ... Grade -> Grade -> Grade?

Final stage option

Hello,

Would it be possible to add a switch to make the calculator usable for final stage i.e. final year students too, which includes only two rules? See the updated policy page 43 under 9.8.5

9.8.5. A Board of Examiners shall, where a student has been admitted with credit to study only the final
stage, recommend the highest classification arising from the application of the following
formulae:
d) the classification of the weighted mean of all relevant credits at level 6 after first discounting the marks in the worst 20 credits at Level 6;
e) the minimum classification in which more than 50% of the combined relevant credits at level 6 have been attained after first discounting the marks in the worst 20 credits at Level 6.

Thanks

handle non-classification

This tool indicates what classification might be achieved. What it does not (yet) do it indicate when an ordinary (non honours) degree might be awarded.
For that, only 60 credits are needed in the final year.
We should add that.

Masters predicted grade M.ENG

will a future development in development of the software includes being able to calculate grades for Masters?

would it work if I feeling in my final year as the as my second year and put down the APPLIED DATA AND TEXT ANALYTICS twice and use my penultimate year in the three-year slot?

Cleaner UI

Text input boxes, once filled, will rarely change, so it would be nice to reduce visual clutter by removing the border.

Clean-up Layout

The UI has evolved as abilities have been added. A bit of rearrangement might make it look/read/operate better.

  • Move grade indications to the top?
  • Place grades to the left of module names so there's less eye-scanning required for association?

Add Import / Export

Problem

We're merging libraries in the global namespace at the moment (old skool).

TODO

Migrate to use of import / export, and in doing so, ensure order of validity handlers is correct.

Unexpected validation failure

Issue

Validation fails and allows you to input values beyond the valid limits (100)

Description

Tried inputting values and it allowed me to input any values above 100. Refreshed the page - same issue. Cleared the cache and did a hard refresh, now validation works. Not sure if this is due to an older version being cached but raising an issue in the event it may appear again.

Recreating the issue (Update)

Sometimes the DCALC page opens without any styling. This page allows you to enter values beyond 100 - if you then go onto another tab, and open the page there, even if it shows normally (with styling), validation no longer works as expected.

Expected Behaviour

Cannot input values below 0 or above 100

Examples

https://soc.port.ac.uk/dcalc/?share&l5mark1=101&l5name1=jj&l5mark2=150&l5name2=aaa&l5mark3=185&l5name3=fvefs&l5mark4=852&l5name4=gesg&l5mark5=124&l5name5=32fesf&l5mark6=852&l5name6=32fewf&l6mark1=1256&l6name1=3twegfvd&l6mark2=3212&l6name2=3tfesw3&l6mark3=159&l6name3=23rf3w&l6mark4=752&l6name4=32fwf3w&fyp=755

image

Explain Rules

Include the full text of each rule later in the page, linked from where the rule predictions are shown.

Link from page to source.

Add a link from the page to the source code so anyone who's interested to help (or just see how it works) can get involved.

JavaScript files fail to load - net::ERR_FAILED

On rare occasion, the js files for the application fail to load in, causing the application to not function. Occasionally, the same happens with the stylesheet(s).

A page refresh usually resolves the issue, although it isn't clear to the user what's happening and refreshing the page would be irritating after entering all of their data as they would lose all progress.

I'd assume this is an issue on the GitHub side, where some files are not being sent over.

Screenshots from Windows 10 OS, Chrome 98 browser.

image
image
image

Add tests to rules file

What problem does this solve?

The rules file is core to everything and is currently untested which could lead to incorrect values being generated. Adding tests should ensure the values are correct and should also prevent future regressions. Should also make way for future CI set ups.

Proposed solution

Add jest to project and write tests for rules.js

Show, not tell.

Our rules JS is great for the calculation, but it might be nice to actually show that on screen
So for Rule B have something that says:

We discount (ignore) your mark for XYZ because it is your lowest grade at 52. Then we find the mean of the remaining marks for the year as follows: ( 54 + 55 + 67 + 74 + 81 ) / 5 = 66.2. That number is then rounded to produce your final grade of 66.

This could go with the rules explanation.

Add favicon.

It's tedious, but every browser asks for the favicon by default so let's just add one :-)

Highlight Dropped Grade

It would be a nice touch to highlight which grade will be dropped from each year.
Perhaps use an :after with a symbol โœ„

Migrate TODO list to GitHub issues.

todo

  • version control
  • desktop view
  • github
  • calculate rules
    • rule a = (Mean of Year 2 * 0.4) + (Mean of Year 3 * 0.6)
    • rule b = (Mean of Year 3)
    • rule c = (Median grade of year 2 and year 3)
  • validation: #7
  • saving
  • offline app: #6
  • Move TODO list to github issues
    • Started
    • Finished

maybe

  • Simplify: #2
  • Share my grades: #3
  • Explain Rules: #4
  • GPA Predictor: #5

Module credits option

Hi - trying to calculate but I'm not able to see the difference as I wanted to see the difference with the 40 credit module in place? Is the line titled 'project' the 40 credit one?

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.