- Product (either a webapp or a local application) that gets a student to enter information about classes they want to sign up for and then displays to the student their class schedule before they sign up for classes.
- Product will warn students about schedule conflicts and give alternative sugesstions to remedy schedule conflicts.
- Product has integration with PAWS online services. So all students need to do is enter minimal information (class name, CERN, etc...) and the product will search for classes that the student can add to their schedule in the product.
### Needs and Values:
- Allows students to easily preview their schedule and see potential time conflicts before signing up for classes.
- There is currently no available product which provides this functionality, as the only way to see a detailed schedule for classes is after a student has signed up for them.
- This product is to be used by students in the time frame before class sign up is opened, but can be used by students during class signing up is opened.
### Stakeholders:
- University of Saskatchewan undergraduate student body as it will vastly improve time spent determining class schedule.
- Undergraduate students with busy schedules and jobs outside their university work will benefit as they can more easily plan their schedules ahead of time before signing up for classes.
### Quality Assurance:
- Coding practices and guidelines. If creating a locally run application, will use either Qt style guidelines (https://wiki.qt.io/Qt_Coding_Style) and/or Suckless style guidelines (https://suckless.org/coding_style/). If creating a webapp, will use Google style standard of HTML, CSS and Javascript (https://google.github.io/styleguide/htmlcssguide.html, https://google.github.io/styleguide/jsguide.html).
- Internal testing done by Evan, but other members of SSLabs can help with testing as well.
- Internally, we have a diverse set of OS's (Windows, MacOS, Linux) and web browsers (Chrome, Firefox, Opera, w3m) to test for functionallity and correctness.
- Externally we can ask other students to test our product so they can review functionallity and correctness, as well as other considerations such as design and workflow of the product.
### Technology Requirements:
- Any x86 device for local application.
- Any device that can run a web browser that supports HTML, CSS and Javascript for webapp.
- This product should be very lightweight and require very little system resources. Most intensive tasks will be drawing 2d graphics either through Qt API or through a web browser and looking up database values.
- If local application, Qt graphical front end and C/C++ for operations.
- If webapp, HTML and CSS for graphical front end and Javascript for backend operations.
- Will be integrated with the PAWS database, so will need some kind of database parsing langauge like SQL.
### Actions Plan:
- Will have group meetings every friday after the 370 lecture.
- Possible meetings over the weekend and on tuesdays depending if needed.
- Nikhil will manage the GitLab page, update the wiki, manage push/pull requests.
- Braeden will develop the frontend and UI.
- Ben will develop the backend and PAWS integration.
- Evan will manage the quality assurance, review the code and do testing.
- If we decide to code in Qt, Ben will give a tutorial on how to develop with Qt.
### Functionality:
- Security: Ensuring a secure connection when pulling from the PAWS database. Asides from making sure the connection between PAWS server and the product is sercure, not much else is needed as the browser/OS can handle any local security. Might not even have to have any focus on security at all if PAWS has its own security system.
- Capability: Product should diplay to the student a schedule for the classes they want to sign up for before they actually sign up for them.
- Reusability: By keeping the program lightweight and versatile we can apply it to any university class sign up system if the university does not have a system already in place.
- Usability: This is a very lightweight program. Speed will be dependant almost solely on the internet speed of the individual.
- Reliability: Any web browser on any platform or x86 compatible computer should work.
- Accuracy: Product should be accurate unless if there is an error in the PAWS system.
- Predictability: Product should display the same information as long as there are no changes in the PAWS system.
- Availability: If we make this into a web app it would be easily available online. If we go with a native app we would have a download link to students.
- Performance: Product is very lightweight and will have minimal resource consumption, looking at internet usage in the couple hundred kilobytes. Low ram consumption, and ideally requires one cpu core at low clock to operate
- Supportability: Any modern web browser on any platform should work.