###Description This EcamCalendar project has been started as part of the Software Architecture class to improve the current website ECAM (College for industrial engineers) uses to provide the schedules of students and teachers. This is working as a microservice that is supposed to be part of the school website.
Programming language: java
###Set up
To start the project on your environment click and maven > lifecycle > install.
After that, you can run your project :
Right click on CalendarApplication and run the project.
Project Structure :
to resolve the DBConnect error go on : file > project Structure > module > calendar > + :
- Select mysql-connector-java-8.0.11.jar
- Select jsch-0.1.54.jar
To import unit test :
- go on your project structure > source > define > and modify your implementation to add unit_tests in test.
those 2 are in the next folder : /src/main/java/com.ecam.Calendar/
Communication with other microservices is possible thanks to the YAML file.
Connection to the database is established in the next file: /src/main/java/com.ecam.Calendar/DBConnect
-
Maven
Maven is used to automate continuous integration during software development. -
Postman
Since this microservice is purely backend development, postman is used to check the queries made to the database. -
OpenApi
OpenApi defines the format in which the YAML file should be written. https://spec.openapis.org/oas/latest.html ###Current features -
The teacher can add a time slot with the class he wants to teach. Teacher can put his schedule together by choosing
- time slots;
- the course he wants to teach;
- a room (compatible with the number of students enrolled in each course);
- He can also add the session number of the class.
-
The students and teachers have access to their schedules. Visible elements are:
- the course title and code;
- the name of the teacher;
- the room where the class is given;
- the time slot;
- the session number.
-
Check the availability of a room: it is possible to display all the courses taking place in a room.
-
Check that the number of students attending the class matches the possible capacity of the room.
###Possible future features Here are a few other features we were hoping to implement in the future.
-
Add a sign to the class on the schedule to differentiate mandatory classes from classes where attendance is not required: Sending a code through the YAML so that the frontend microservice can change the color of the different kinds of classes (theoretical, exercises, labs or mandatory and non mandatory)
-
Update function that updates
-
Ability to add personal notifications.
-
Add student/teacher support - on the schedule: being able to add a meeting (appointment with a colleague for an assignment, project or other)