$40
UTCN Computer Science Department Software Design
ASSIGNMENT A2
==================================================================== 1. Objective
The objective of this assignment is to allow students to become familiar with MVC architectural pattern, services, repository and unit tests.
2. Application Description
Use JAVA Spring/C# Web API to design and implement an application for the tracking the laboratory activity for the Software Design laboratory. The application should have two types of users (student and teacher) which must provide an email and a password to use the application.
The teacher can perform the following operations:
- Login
- CRUD on students. When you create a student, a 128 characters token is created. Using that token student should be able to register. Teacher will send the token by email manually. For each student we should track: email address, full name, group (ex. 30431) and top 1 hobby.
- Can add/edit/delete Laboratory classes. For each class we should track: laboratory number (1-14), date, title, curricula for what are the topics presented in that lab and a long description with the laboratory text (should accept html).
- CRUD on attendance for each lab.
- CRUD on assignments. Some of the laboratory will have assignments: for each assignment we must track the name, deadline and a long description with the assignment text.
- Grade the submitted assignments. It should also be possible to regrade the assignment. - Get the list of grades for all students for a given assignment.
The student can perform the following operations:
- Register using the token generated by the teacher.
- Login with the username and password.
- View a list of laboratory classes. Also view a filtered list: student inserts a keyword and that keyword is searched in the curricula and long description.
- View the assignments for a laboratory class.
- Create an assignment submission. Here, students should be able to insert a link to a git repository and a short remark for the teacher.
3. Application Constraints
• The data will be stored in a database.
• Use the MVC architectural pattern to organize your application. For this assignment we will create only the backend part (Model, Controller, Services and Repositories).
• API design should be RESTful.
• Use and ORM (Hibernate / Entity framework) to access the database
• Use dependency injection to inject Services in Controllers and Repositories in Services
• Install and use Swagger to call your APIs.
• Connection string should be stored in a separate config file
• Create one set of API tests for one of the controllers (for example:
LaboratoryClassController)
4. Requirements
- Create the analysis and design document (see the template).
- Implement and test the application.
5. 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.
6. Deadline –
7. Resources:
Web Api:
https://app.pluralsight.com/library/courses/implementing-restful-aspdotnet-web-api/table-of-contents Spring Boot:
https://javabrains.thinkific.com/courses/take/springboot-quickstart/multimedia/2784009-adding-a-restcontroller