$40
UTCN Computer Science Department Software Design
ASSIGNMENT A3
==================================================================== 1. Objective
The objective of this assignment is to extend the second assignment by adding security on an API and consuming the API in a desktop application.
2. Application Description
Use JAVA Spring/C# Web API in combination with JAVA Swing/.NET WinForms to design and implement an application for tracking the laboratory activity for the Software Design laboratory. The requirements of the application are provided in Assignment 2. Additional requirements are:
- Create a desktop application to consume the APIs. Have screens for login, teacher side: register students, laboratory, assignments, attendance and grading; student side: first time register, login, laboratory, assignments, post attendance and grading. Nice to have: view attendance for students. Any additional feature that you consider helpful is highly appreciated. [8 points]
- Secure all APIs with an authorization header that contains an Email and a Password. First, you will have to check that the password is correct and then find out the role (Teacher/Student) for that given user. Do not do this logic in every controller method, this logic is common for all controllers, so it has to be at a higher level. Depending on the roles, some APIs might be accessed only by the teacher (for example: add student, add laboratory), only by the student (submit assignment) or by both (view laboratories).
- Encrypt the password from the UI with a one direction algorithm and then work with the password encrypted. [1 point] Nice to have:
- Create a system that notifies by email all students when a new assignment is posted by the teacher.
- When a new user is added by the teacher, the token is sent by email. [extra points]
3. Requirements
- Extend on the analysis and design document (see the template).
- Implement and test the application.
4. Deliverables
- GIT/TFS link with:
1. Analysis and design document.
2. Source files.
3. SQL script for creating and populating the database with initial values.
5. Deadline –
6. Resources: