Skip to content
This repository has been archived by the owner on Nov 14, 2017. It is now read-only.

Release Notes

Eric Jiang edited this page Apr 10, 2017 · 18 revisions

v0.7.x

v0.7.10 (10/4/17 Build)

We have migrated our API code over to a Private Org GitHub Repository. Access to our API can be requested over esol-stft-monplan-l@monash.edu

v0.7.0

API pushed over to Java using 3wks thundr package. API calls are now powered by Google Datastore providing a more reliable and slightly faster connection.

The API Server and our main app server will be moved over to Google's Sydney Datacenter, once Google releases the access to GAE in Sydney. The source code will be hosted over at gitlab.com

v0.6.x

v0.6.0-Final (1/2/17 Build)

This was released as v0.7.0 (Java Migration is in the works, this repository will not be updated. However release notes will continued to be updated throughout releases.

v0.6.0-pr1 (19/12/17 Build)

This is a prerelease update, as move foward with more functional, and security patches for the API. This patch allows the server to be in HTTP and HTTPS mode, and depends on a SSL/TLS certificate and private key to be within the /ssl/ directory for HTTPS to be enabled.

v0.6.0-pr1 (18/12/17 Build)

This update looks at potential security vulnerabilities within the API, most of the security vulnerabilities have been fixed, by updating potential codes. There are however potential security loopholes, which mainly depends on TLS/SSL certificate.

v0.5.x

v0.5.15 Release

16/1/17

This release updates the API to interact with the result within the rules database within our DataBase. As well as updating coursemaps within the main API database, the courses basic JSON was also updated.

v0.5.10 Release

Snapshots on the API side has been implemented.

v0.5.0 Release

Todays release focuses on getting more data out as well as development testing. This releases updates the following:

  • uploaded SETU Data into API database
  • updated GET requests
  • uploaded Course Infomation into API database
  • built demo system of updating unit rating system
  • some minor text and security fixes

v0.4.x

Security Fixes (v0.4.25)

11/1/17

As you may have been aware, we recently mirgated to mongoDB so that the API can deliver richer content. Unfortunately, the mongo database was part of a string of attacks on approximately 25,000 mongoDB's across the globe in the past 2-3 weeks. As part of our DRP, we immediately released a backup onto the server database and rollout was completed at approximately 9am AEST.

We then reviewed security problems within our model, and decided it was too risky to move foward with our server, as such we migrated to a new server, with a more secure environment and configuration files.

At approximately 12pm and 1pm, two more attacks happened within our limited old database. As migration was almost complete, we simply ignore the problems presented during the latest attack and moved forward with our migration process. Migration was successfully completed at 2pm and services are expected to be fully restored by around 2:15pm AEST

As there is no personal information stored within our environment, we are happy to say that no users have been effected by these events. We are also reviewing our Disaster Recovery Plan, so that we have a lower turnaround time.

For more info visit: http://www.zdnet.com/article/mongodb-ransacked-now-27000-databases-hit-in-mass-ransom-attacks/

The v0.4.25 update fixes deploy issues as well as critical security flaws within our environment.

Introduction of Unit Ratings

As part of the v0.4.20-rc1 update, we released code so that the API can interact with our mongoDB database so that we can deliver unit ratings, at this stage all dataset is set to base rating of 3 (3 out of 5), we are planning so that we can deliver unit ratings to all units so that students can stay informed on each rating.

Each Unit Has 2 Ratings:

  • Enjoyability Rating: this rating shows how enjoyable a unit can be
  • Learnability Rating: how much you learn from this unit

There are two API calls that can be performed:

  • /unitRatings/(code)
    • This returns the rating determined by the code, for example the response looks like:
      {
      
    "_id": "58741d833021321acdce85b2", "unitCode": "FIT1045", "enjoyRating": 3, "learnRating": 3 }
- `/unitRatings`: This API call returns the same as above, but for **every** unit

## Courses Update
As part of the version 0.4.x series, we completely overhauled our API to handle smarter and better course map generation. The basic summary API has been overhauled with something like this

{ "courseAOS": [ { "aosName": "Master of Business Law", "code": "B6013-0" } ], "courseCode": "B6013", "courseName": "Bachelor of Business Law (double)", "managingFaculty": "Faculty of Business and Economics" }


That way when searching, you start off searching the courseName then you search for your area of study, simple right?

#v0.3.x
## Introduction
The 0.3.x Series completely overhauls our API system, allowing more data to be called from our system. This update includes:
- [More Data](https://github.com/MonashUnitPlanner/monPlan-API/wiki/v0.3.x-Release-Notes#more-data) when you call the API more information is returned for each individual unit
- [Course Maps](https://github.com/MonashUnitPlanner/monPlan-API/wiki/v0.3.x-Release-Notes#course-maps) which allows for templating to be enabled in the web application
    - updates to Course Maps (as we begin to rollout cleaner maps)
    - minor text fixes
- Status Code Headers allowing clearer communication better from the API server and our app which uses the `axios` HTTP request package
- Update Core Package so that it also responds with a basic response (e.g. only UnitName, UnitCode and Faculty)
- Pre-0.4.0 Security Packages and Code
- Security Fixes
- Minor Text Fixes

## What's Coming (Roadmap of API) - v0.4.x and Beyond
- Security (oauth) layer for response
- mongodb backend upgrade
- Faculty-by-faculty upgrade with perquisites and co-requisites. Expect rollout to be Mid-January to End-February, this is then used for advanced validation
- mongodb for Unit Ratings 

## Update Details
### More Data
Our third version of the API increases usability of our API calls, allowing more information to be displayed across more options. For example calling a unit - FIT2004, the server responds with

{ "UnitCode": "FIT2004", "UnitName": "Algorithms and data structures", "Description": "This unit introduces students to problem solving concepts and techniques fundamental to the science of programming. In doing this it covers problem specification, algorithmic design, analysis and implementation. Detailed topics include analysis of best, average and worst-case time and space complexity; introduction to numerical algorithms; recursion; advanced data structures such as heaps and B-trees; hashing; sorting algorithms; searching algorithms; graph algorithms; and numerical computing.", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ] ], "CreditPoints": 6, "Faculty": "Faculty of Information Technology", "EFTSL": 0.125, "SCABand": 2, "Prerequisites": "One of FIT1008, FIT1015, FIT2085 or CSE1303 and 6 points of Level 1 mathematics.", "Prohibitions": "CSE2304, FIT2009" }

This is then used in conjunction with our web app for simple validation and other details such as Credit Point and Course Cost estimator.

### Course Maps
Also we are happy to announce - using scraped data from https://study.monash we have designed course map templates which can be integrated with our app, the introduction of course maps, allows rendering of 'Course Maps' on monPlan, allowing students to place and move around units.

For example the call of C2000 (Bachelor of Information Technology), the server responds with:

{ "courseCode": "C2000", "courseName": "Information Technology", "courseType": "Bachelor degree", "teachingPeriods": [ { "code": false, "numberOfUnits": 2, "units": [ { "CreditPoints": 6, "Description": "This unit introduces programming fundamentals and the Python language to students. The unit provides a foundational understanding of program design and implementation of algorithms to solve simple problems. Fundamental programming control structures, built in and complex datatypes and mechanisms for modularity will be presented in Python.Topics covered will include basic input and output, program control structures, basic data structures and modular program structure. Problem-solving strategies and techniques for algorithm development, iteration and recursion, algorithm efficiency and the limitations of algorithms will be introduced.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "VCE Mathematics Methods or Specialist Mathematics units 3 & 4 with a study score of 25 or MTH1010.Note: For 2016 Further Mathematics with a study score of 35 will be accepted.", "Prohibitions": "FIT1029", "SCABand": 2, "UnitCode": "FIT1045", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)", "October intake 2017 (Day)" ] ] ], "UnitName": "Algorithms and programming fundamentals in python" }, { "CreditPoints": 6, "Description": "The unit introduces students to fundamentals of computer systems, networks and security. It provides basic knowledge of computer organisation and architecture, operating systems, networking architecture, technology and operation. It introduces the concepts of security goals for protecting common modern computer systems and communication networks from adversaries and the deployment of suitable countermeasures to achieve these goals.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "", "Prohibitions": "FIT1031 and FIT2078", "SCABand": 2, "UnitCode": "FIT1047", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)", "October intake 2017 (Day)" ] ], [ [ "South Africa" ], [ "First semester 2017 (Day)" ] ] ], "UnitName": "Introduction to computer systems, networks and security" } ], "year": 2016 }, { "code": false, "numberOfUnits": 1, "units": [ { "CreditPoints": 6, "Description": "This unit provides a practical and theoretical introduction to what it means to be an IT professional today. Students will encounter a range of issues relevant to professional practice in the workplace, as well as an understanding of the wider responsibilities that professionals are called upon to uphold in society. Topics addressed include: organisational and professional communication; mindfulness; teamwork; the nature of the IT professions; the role of professional associations; problem solving and information use; cross-cultural awareness; personal and professional ethics and codes of practice.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "Completion of 12 points of FIT units.", "Prohibitions": "FIT2003", "SCABand": 2, "UnitCode": "FIT1049", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "South Africa" ], [ "Second semester 2017 (Day)" ] ] ], "UnitName": "IT professional practice" } ], "year": 2017 }, { "code": false, "numberOfUnits": 2, "units": [ { "CreditPoints": 6, "Description": "The unit introduces students to systems analysis and design as a problem solving activity, within the framework of a selected methodology. It will focus on contemporary industry practice; investigating understanding and documenting system requirements; a range of design and implementation activities; and professional skills required for systems development.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "24 points of FIT units", "Prohibitions": "BUS2021, CPE2003, CSE1204, CSE1205, GCO1813, GCO2601, GCO2852, GCO2826, IMS1001, IMS1002, IMS1805, IMS2071, IMS9001", "SCABand": 2, "UnitCode": "FIT2001", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)" ] ], [ [ "South Africa" ], [ "First semester 2017 (Day)" ] ] ], "UnitName": "Systems development" }, { "CreditPoints": 6, "Description": "This unit will provide an introduction to the concepts of database design and usage and the related issues of data management. Students will develop skills in planning, designing, and implementing a data model using an enterprise-scale relational database system (Oracle). Methods and techniques will also be presented to populate, retrieve, update and implement integrity features on data in the implemented database system.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "One of FIT1040, FIT1045, FIT1048, FIT1051 or equivalent introductory programming unit", "Prohibitions": "FIT1004, FIT3171", "SCABand": 2, "UnitCode": "FIT2094", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "First semester 2017 (Day)" ] ], [ [ "South Africa" ], [ "First semester 2017 (Day)" ] ] ], "UnitName": "Databases" } ], "year": 2018 }, { "code": false, "numberOfUnits": 1, "units": [ { "CreditPoints": 6, "Description": "This unit introduces students to the many concepts, tools and techniques for managing information technology projects. Exploring traditional and agile approaches for managing projects, topics include project lifecycles, project planning, project scheduling, team building, risk management, time and quality management. A case study approach will be used to provide learning opportunities, with an emphasis on the unique aspects of information technology projects.", "EFTSL": 0.125, "Faculty": "Faculty of Information Technology", "Prerequisites": "Completion of at least 36 points of study, including one of (FIT1002, FIT1040, FIT1045, FIT1048, FIT1051, ENG1003) (or equivalent) and one of (FIT1049, FIT2003, EDF2005, SCI2010) (or equivalent)", "Prohibitions": "AFW3043, BEW3640, BUS2176, CIV3205, CPE2006, CSE2203, GCO3807, GEG3104, GSE3003, FIT3086, MGW2700, MMS2203", "SCABand": 3, "UnitCode": "FIT2002", "UnitLocationTP": [ [ [ "Clayton" ], [ "First semester 2017 (Day)", "Second semester 2017 (Day)" ] ], [ [ "Malaysia" ], [ "Second semester 2017 (Day)" ] ], [ [ "South Africa" ], [ "Second semester 2017 (Day)" ] ] ], "UnitName": "IT project management" } ], "year": 2019 }, { "code": false, "numberOfUnits": 0, "units": [], "year": 2020 }, { "code": false, "numberOfUnits": 0, "units": [], "year": 2021 } ] }