-
Notifications
You must be signed in to change notification settings - Fork 3
Implementation Details
tiresias7 edited this page Jan 9, 2024
·
10 revisions
- A typical data flow example in our application:
- User Interaction: The user selects a course in the frontend.
- Request to Server: The frontend sends a request to the server with the selected course details.
- Server Processing: The server parses the course code and category, then sends a request to the database.
- Database Fetching: After fetching data from the database, the response is sent back not directly to the frontend but stored in the cache.
- Server Response: The server sends a response to the frontend, indicating that the request has been processed.
- Cache Storage: The data fetched from the database is stored in the cache.
- Algorithm Processing: When the user triggers an action like generating a schedule, the backend algorithm accesses this data from the cache.
- Final Display: The algorithm calculates and sends the result back to the frontend, where it undergoes data conversion and is finally displayed to the user.
The client desktop application follows platform conventions.
- Supports text selection, copy-paste on schedules.
- Supports hot-key [Enter] for sign-in.
- Supports resize/fullscreen windows with minimum screen size restriction.
- Saves custom theme preference to local file storage.
- APIs
- Leveraging Google Cloud Database to minimize setup overhead and computational demands on user devices, paving the way for seamless integration with mobile platforms.
- Utilizing Google Cloud Services to handle HTTPS requests, streamlining operations and enhancing responsiveness for the same purpose.
The access to the database is achieved using HTTPS requests, and the implementation involves using HikariDataSource as an object to minimize the number of connection establishments and closures. Also, implemented using the templating functions and object methods, increasing the overall readability and maintainability. The future developer should develop their needed database commands as if typing SQL querys.
- Fetch friend list for a given user ID: The function queries the database to retrieve the friend list for a specified user.
- Fetch friend requests for a given user ID: it retrieves friend requests for a specified user.
- Fetch friend profile: The function allows a user to query the profile of another user, provided they are friends.
- Send friend request: It sends friend requests between users, handling the communication with the database.
- Approve friend requests: It allows a user to approve friend requests from others.
- Deny friend requests: It allows a user to deny friend requests from others
- Delete friend relation: This function supports the deletion of friend relations between users.
- Query sections by faculty ID: The function queries the database for class sections based on faculty and course ID.
- Query all classes: Users can query the database for a list of all available classes.
- Sign up/in users: Users can sign in/up using their email and password, with the function handling the authentication process.
- Update user profile: Users can update their profiles, the database will reset their profile once authenticated.