Application For each data family, CRUD operations will have to be available, with the following limitations: On courses and students data: neither courses nor students can be eliminated, if enrollment relationships exist. On companies: a company must have at least one operational office. The elimination of a company involves the removal of all the associated operational offices, after user’s confirmation. Operational offices (or related companies) cannot be eliminated if job placement relations involving them still exist. Enrollments: the same student cannot enroll multiple times in the same course. Enrollments cannot be eliminated if job placements still exist. The field resignation date is initially empty (NULL). Job placement: the same student can, if necessary, do multiple job placements with the same company, but in periods of time which are not overlapping.
Interface The user initially accesses the authentication page. Every screenshot presents a menu with the following items: • Students • Courses • Companies, in addition to a drop-down menu with the current academic year (with the possibility to change it, choosing a different value among those available in the courses registry). There is also a log out button to end the session. The most common interface element is the table containing generic data, which gives, for every row, the possibility to modify or to delete the corresponding record. At the top of every table (or, anyway, next to it) there is a button for creating a new record. The table can be sorted in a different way by clicking on the column header; at the first click, the ordering will be direct (A-Z), at the second click it will be reverse (Z-A). The sorting will work both for strings and for numbers as well as dates.
Choosing an item from the main menu, it is possible to access to the related management functions.
Students On the page, a text box is present where the user can enter part of the student’s surname or of the student’s name. Upon starting the search, the system will present a table with the search results. If the user does not specify any search terms, the results of the search will include all available students’ records. By selecting a student’s record, two other tables will appear, with a list of all the enrollments and all the job placements related to the student.
Courses The courses related to the current academic year (or related to another academic year, according to the user’s choice) will appear on the table. Selecting a course, tables will appear with related enrollments and related job placements.
Companies The companies will be searchable by registred office or by business sector. The table will present data related to different companies (registered offices). Upon selecting a specific company (registered office), all data related to this company’s operational offices and its jobs placements will be shown (even related to academic years different from the current one).
Enrollments / Job Placements Using the previous functionalities it will be possible to access data related to all enrollments of a student, to all job placements of a student, to all job internships done at a specific company. In each of these sections it will be possible to add, to modify, to delete enrollments and job placements. Limits: modifications may not affect data related to other tables (that is, modify external keys), for example it will not be possible to modify the company field in a job placement or it will not be possible to modify a course field in an inscription. Deletion will only be possible after express confirmation.