nusmodifications / nusmods

🏫 Official course planning platform for National University of Singapore.
https://nusmods.com
MIT License
578 stars 315 forks source link

NUSPlanner [1306] #391

Closed Viet2007 closed 7 years ago

Viet2007 commented 7 years ago

INTRODUCTION:

We want to create a website for NUS student to plan forehand their 4-year schedule We have two main tabs, one is for choosing mods and has an overview, the other is for planning details.

We will start with Computer Science cohort 2016-2020 first

IDEA:

TAB1: Main table:

*For the shortage of time, we will cover the UE and UL part later and for now just minus all those MCs and counted according to slots in the schedule for them without deciding the mods.

Create a module tree that based on level, and mods that have prerequisite can only be chosen after students have chosen the parent (prerequisite) mods. We also provide zoom in and zoom out features to have a good view, since the tree can be big and tall. To differentiate modules: Modules with different types (have already chosen, can not be chosen yet and can but haven’t been chosen yet) have different colors. In each option of a mod, can either choose to add into module list (will study or exempted) or view review on NUSmods (open in new tab). Mods that are required to take by CS student but in other faculties will also be in the table according to its level.

Second table: List of mods based on level, count Mcs (exempted mods auto count but can not add into the 4-year schedule), Mcs left, mods need to clear to graduate, suggest on specialization (based on the match of mods that chosen), then career (additional feature).

*For major that have full schedule planned by faculty, we can provide that list so that they can plan whether should or should not overload and give advice about career (additional feature)

TAB2: First table: Convert mods in the second table to plan 4-year schedule (don’t have to choose all mods in 4 years). List in linked-lists shows every branch of a tree from root to leaf. (exempted mods will be counted as taken and don’t have to put into schedule - appear in a different color from others)

Second table: Divided into 4 years, 2 semesters/year Drag mod from table one then drop in the second table, can not drag the mods that it’s previous mods haven’t added into the table (careful the case both mods parent and child in same semester)

TIMELINE:

As we haven’t known what exactly to learn and the time spent on each part, so we can only come up with the basic timeline. Need advice and help on the skillset that required for the project.

Basic timeline:

Now - 27th of May: learn basic and get familiar with all the skill sets (mostly focus on JavaScript) 28th of May - 15th of June: start working on the project and learn to be professional with all the tools 16th of June - end of June: finish the prototype July: debug and add additional features

IMPLEMENTATION:

Work on Git, Github, JavaScript (front and back end), HTML, CSS, photoshop, and additional technologies if required.

ngzhian commented 7 years ago

Good idea! I think students will find it useful to see their entire university schedule planned out.

A couple of thoughts:

  1. How would you save this? Currently NUSMods uses a combination of URL and localstorage to persist your timetable. There are pros and cons to this approach.
  2. Are you going to allow students to plan ahead? Say I want to plan for 17/18 Sem 2, but the information isn't out yet, can I still select modules based on past data?
  3. Please take a look at https://nus-oracle.herokuapp.com, this is a STEPs project for an interaction design website and is very polished. Maybe you can get some ideas from it!
  4. I think some sort of mock up (can be hand drawn, ppt, balsamiq mockup) will be helpful to visualise your idea. A useful tool for mocking up is InVision, but feel free to use what you like!
  5. Please give some more thought as to how to get the the graduation requirement, for your feature: "mods need to clear to graduate": this will either take a lot of crawling 🐛 and parsing and cleaning of data, or a lot of manual entry 💪 . I will be good to think of a high level and flexible framework to specify graduation requirement such that this is extensible 🏋️‍♀️. (Ideally this should be automated, not manually updated every time there is a new cohort)
  6. A suggestion on the timeline: I suggest a more iterative approach, every week (or every other week), a small feature should be done. So instead of finishing the prototype from 16th of June - end of June, the whole of June and July can be spent implementing a small feature every week. Set yourself goals for the week and try to get that done. Debugging and testing can also be done throughout the whole of the project, rather than dedicate an entire July to it :)
Viet2007 commented 7 years ago

Hi,

After checking NUS Oracle we found out that our idea is similar with Oracle. I want to ask between creating a similar website but different UI with some additional features (but might not be as good as Oracle) and adding Graduation calculation, advice about specialization and career into NusMods, which one you think will be more feasible for a 3-month project?

li-kai commented 7 years ago

Personally I wouldn't let feasibility be a consideration factor in things you choose to do (:P).

Although realistically, since there are a few projects already tackling the module planner problem, I feel that the second part about advice and career could be innovative and refreshing to see on the NUSMods V3.

Do think about it, draw up some UI designs and ask yourselves what features you want. This way you can realise and tie down the scope of the project to specific details. Hopefully that'd help you make the decision.

Viet2007 commented 7 years ago

What if we make our website as a prototype, then if it is good, we will be willing to join NUSMods team to work on the advice part. That what we are thinking after your advice.