There is a possible minimum feature set that you should implement in order to pass the assignment however for a higher grade you would be expected to go far beyond this: 1. users should be able to search for items without the need to register or log in 2. to access any further features, they should be able to register for an account with appropriate validation such as email confirmation. 3. logged in users should be able to choose from their search results to create a ‘favourites’ list 4. they should be able to ‘organise’ this list (eg. add notes, delete items, etc.)
Your API will search online data sources such as APIs or websites to obtain relevant data however any results should be persisted within your API. How you persist this data is entirely up to you however you will need to justify your choice(s) based on the features available. Options include persisting the data to the filesystem or using an appropriate database (SQL, document or graph). You should carefully select which data you will be saving from the third-party API(s) and only display and persist this. You will lose marks if you persist everything you get back from the third-party API(s)
This assignment is designed to expose you to a range of tools and frameworks used by industry. On the server you should be using the NodeJS framework and may use any appropriate packages however you will need to justify your choices. You must not use the Express package or the Strongloop tools under any circumstances . Please note that you will get a zero grade if you choose other languages
You need to deploy your latest API release on a cloud service such as Heroku so your lecturers can test its functionality. Make sure it is deployed and functional before the assignment deadline and that the deployed version matches the source code you submit (see below).
Managing source code is a vital skill if you are to become a successful developer and for this assignment you are required to track your API code and your client code in separate Git repositories and you will be marked on how efficiently you organise this. You will be required to submit links to both your Git remotes hosted on GitLab. Both repositories should include full documentation available through the home page. To ensure the code can be seen by your lecturers make sure you give them reporter permissions. Their usernames are: 1. marktyers 2. c0lin 3. cu-jianbingma 4. jianbingma.cu 5. digehode Video Once you have completed the API and the client you need to explain how your API and client work. Rather than writing a report you are required to record a short screencast of 8 min or less. This should cover all the points in the grading criteria and demonstrate your skills and knowledge of the subject. After uploading you must change the video permissions from private to unlisted. This will allow the lecturers to access the video via the link but prevent it being publicly searchable. Make sure you separately demonstrate the API (using cURL or Postman) and the client and ensure you justify your choices of language constructs and architecture. 1. demonstrate your API using cURL or Postman, showing the requests and responses (headers/body). For the highest grades you will also be expected to demonstrate your API integrated into a client such as a website or smartphone app. 2. demonstrate the back-end persistence showing how the data is stored. 3. run the unit and acceptance tests on the API explaining code coverage. 4. Run the linter using the supplied configuration file to demonstrate code quality