Scholars-Academy-Overview

Object Model Diagram

classDiagram User <-- SignIn User <-- Student User <-- Mentor User <-- Admin Mentor *-- WeekEntry Student -- Calendar Mentor -- Calendar Admin -- Calendar Admin -- Mentor Student -- Event class Admin Admin: +string name Admin: +string email Admin: +int jNumber Admin: +string role Admin: string addMentor() Admin: Calendar getCalendarView() Admin: string changeTimeSlat(string mentor) class User User: +string fullname User: +string userName User: +string password User: +string email User: +int jNumber User: +string role User: string changeName() class Event Event: +string mentorName Event: +string studnetName Event: +date startDate Event: +date endDate Event: +void sendEmail(string mentorEmail, string studentEmail) class Mentor Mentor: +string name Mentor: +date timeSlot Mentor: +string courses Mentor: Calendar getCalendarView() class Calendar Calendar: +vector<Mentors> getMentors() Calendar: +vector timeSlots class Student Student: +string role Student: Calendar getCalendarView() Student: string createEvent() Student: string setRole() class WeekEntry WeekEntry: -string days WeekEntry: -Date startTime WeekEntry: -Date endTime class SignIn SignIn: +string userName SignIn: +string password

ER Diagram

Entities are

USER | STUDENT | MENTOR | SIGN IN | EVENTS | CALENDAR.

The USER can be either a student, a mentor or admin which is assigned by the ‘role’ attribute in the user table. Events is transaction that is posted when a student is booked for mentorship program.

erDiagram USER ||--|| STUDENT : is USER ||--|| MENTOR : is USER ||--|| SIGNIN : has STUDENT ||--o{ EVENTS : posts STUDENT ||--|| CALENDAR : has MENTOR ||--|| CALENDAR : has USER { int user_id PK string fullName int jNumber string email string role string userName string password } STUDENT { int student_id PK int user_id FK } MENTOR { int mentor_id PK int user_id FK string courses } SIGNIN { int signIn_id PK int user_id FK string userName string password } EVENTS { int events_id PK int mentor_id FK int student_id FK dateFormat startDate dateFormat endDate } CALENDAR { int calendar_id PK int user_id FK dateFormat assignedDate dateFormat startDate dateFormat endDate }

Sequence Diagram

Admin Diagram

sequenceDiagram actor Admin Admin->>+signIn/signUp: getUser() signIn/signUp-->>-Admin: successfully login / error response Admin->>+CalendarView: getCaldentView() CalendarView-->>-Admin: weekView() / error response Admin->>+addMentor: create mentor class addMentor-->>-Admin: Mentor has been added / error response Admin->>+CalendarView: changeTimeSlot CalendarView-->>-Admin: schedule updated! / error response Admin->>+Logout: logout Logout-->>-Admin: logout / error response

Mentor Diagram

sequenceDiagram actor Mentor Mentor->>+signIn/signUp: getUser() signIn/signUp-->>-Mentor: successfully login / error response signIn/signUp->>+CalendarView: getCaldentView() CalendarView-->-Mentor: weekView() / error response Mentor->>+CalendarView: changeTimeSlot CalendarView-->>+Mentor: schedule updated! / error response Mentor->>+Logout: logout Logout-->>-Mentor: logout / error response

Student Diagram

sequenceDiagram actor Student Student->>+signIn/signUp: getUser() signIn/signUp-->>-Student: successfully login / error response signIn/signUp->>+CalendarView: getCaldentView() CalendarView-->>-Student: weekView() / error response CalendarView->>+Event: schedule event() / error response Event-->>-Student: your appointment has be scheduled / error response Student->>+Logout: logout Logout-->>-Student: logout / error response