Software Design Documentation

High-level Architecture

Architecture Diagram

High Level Architecture Diagram

Architecture Description

The static EmploiF1rst web application, built with React and TypeScript, is hosted on an Nginx web server provided by Cybera. When the frontend needs to interact with the backend, it sends requests to an API server running in a Node.js environment, also hosted by Cybera. The API server then handles data transactions with a local MySQL database to fulfill these requests.

List of Technologies

  • React.js - Free open source JavaScript frontend library for building UI
  • Node.js - Open source JavaScript runtime environment allowing JavaScript code execution on server side
  • Express.js Framework - Backend web development application framework for building RESTful APIs
  • Nginx - An open source web server software which provides HTTPS server capabilities
  • Cybera RAC - Provides free cloud computing resources to ALberta based academics, researchers and non-profits
  • TypeORM - A traditional object relational mapper which maps tables to model classes
  • MySql - Open source relational database management system(DBMS)
  • Supertest - A free open source JavaScript library for testing node.js applications
  • Cypress - A frontend test automation tool for regression testing of web applications
  • Selenium(Switched to Cypress) - A browser automation tool typically used to create tests for and debug web applications

Major Data Elements

ER Diagram

ER Diagram Image

Model Description

This ERD outlines a job application system connecting students, recruiters, job posts, and companies. GraduateStudents (a type of User) can track their job applications using a Job Manager and apply to Job Posts through the Application entity. Recruiters, associated with Companies, create and manage job posts. Students are linked to their educational background, skills, and work experiences, which help recruiters make informed decisions. Meanwhile, Notifications keep students updated about job opportunities.

Interaction Scenarios

General Overview Diagram

UML General Overview

Overview Description

The diagram displays the general usage of the web application where recruiters login and can post job postings which graduate students can apply to. The diagram also displays some basic core features such as graduate students querying the job listings and being notified when a job posting is they have applied for is closed.

Login Diagram

UML Login

Login Description

The diagram displays a more detailed login sequence for a user of the web application where a user tries to log in and when authentification is setup, the user must authenticate their sign in instance first before being redirected to a specific dashboard depending on if the user is a recruiter or graduate student.

Application Creation and Tracking Diagram

UML Application

Application Description

The diagram displays how a graduate student would create an application to a job and track it through the web application. The diagram displays the core featues of uploading resume info, being able to autofill a resume's fields with existing info while creating a job application, and being able to update the status of an application manually while keeping track of an application's current status.

Job Dashboard Diagram

UML Job Dashboard

Job Dashboard Description

The diagram displays how a graduate student can query job's by fields such as location or position while searching for a job to apply to. The diagram also displays how a graduate student can be matched to a job posting based on a matching algorithm.

Company Dashboard Diagram

UML Company Dashboard

Company Dashboard Description

The diagram displays the recruiter side experience interacting with the dashboard to post a job and query applicants. The dashboard also allows the recruiter to obtain and keep track of applications to review for later and to delete a job post when it is no longer open.

Company Rating Diagram

UML Reviews

Rating Description

The diagram displays how a graduate student can find reviews for a company for a given job post and leave a review for the company as well which will be stored in the database for other user's to see.

Low-fidelity User Interface

Welcome Page

Welcome Page

Applicant View

Low-Fidelity Applicant

Recruiter View

Low-Fidelity Recruiter

Admin View

Low-Fidelity Admin