NoQ — A Job Portal for College Career Fairs
NoQ, is a revolutionary tool which allows for both employers and students to skip the hassle seen in modern day career fairs. For the students, we have an intuitive profile builder where you can add things like education, skills, certifications, honors, and experiences. These all culminate into a sleek home page where you will see all the positions in which your skills meet the criteria. NoQ is not only good for students, but employers as well! With NoQ, only the students who meet the positions’ criteria will be able to apply, and from there the recruiter can invite them to talk in more detail at the career fair through our intuitive messaging system.
The GitHub repo can be found here.
Technology Stack
- VueJS
- NodeJS
- MongoDB
- Heroku
- Agile
- JIRA
- Web Sockets
Overview
Problem Statement
A common problem at modern career fairs is the number of unqualified candidates who waste their time when they could be chatting with someone else. Having experienced it first hand, a few of us wanted to create a system that not only values the time of the employer but also the thousands of students. Standing in line anywhere between 30 minutes to 1 hour, just to hand your resume was cumbersome and boring, and we really wanted to make the situation better. Therefore, we came up with a web platform to efficiently bridge the gap between students and recruiter by effectively matching them based on skills, qualifications and experiences — while providing various features to help job seeking students.
Stakeholders
NoQ is aimed towards catering to the students, and employees and recruiters at college career fairs.
Development Process
For quick delivery of production level software, the team worked in an Agile environment of 2 week sprints, with weekly team meetings. Bi-weekly reports and black-log management, along with creating and assigning issues were some of the high level management tasks that I had to carry out.
Design
Design Issues
The system is intended to be used for both recruiters and applicants to undergo screening procedures that can be done before an on-campus career fair, thus applicants should be able to review available positions and send their profile along with their applications to recruiters before the career fair, and recruiters should have the ability to post available positions and access applicants’ profiles remotely and inform applicants about the result and next steps. The system should give user ability to access corresponding data remotely and should not be operating environment dependent.
Candidate Design Solutions
Solution 1: Applicants would be able to scan their resume with a mobile application and create their profile during the check-in process in a career fair and then apply for positions in the same application. Recruiters can review submitted profiles and give applicants permission of having an in-person interview.
Solution 2: Applicants would be able to log in to our website by creating their accounts or login their third party accounts such as LinkedIn, and then build their profile, apply to positions from a list of jobs that they are qualified for. Then they should have the ability to chat with recruiters over the internet once their first stage applications are approved. Recruiters should be able to access applicants’ online profiles and give candidates permission of having an in-person interview during a career fair.
Design Rationale
Solution 2 was selected by the development team. Based on the consideration of timeline, budget and our objectives, solution 2 meets our requirements best. The system have to include an online service and be operating environment dependent, thus a web application would be more appropriate. Additionally, mobile applications for different operating system is way beyond our capability within the time frame of the project.
Approach
We used object-oriented design because we believe that will best allow us to build our project. Using UML diagrams, we can easily see the relationships between each class, which allows us to further understand and develop our product. We also used sequence diagrams in order to showcase how the whole process will start, end, and the steps in between. This allows us to capture every step in the process, which is highly important in developing a perfect product for our customers.
Standards
We did not necessarily adhere to any singular design standard. When designing a component, we holistically evaluated the pros and cons to each design we made, ensuring the highest possible product was produced. For naming conventions, we went with the industry standard for uppercase class names, and camel-case for functions.
Architecture
NoQ is based on the MongoDB, Express, Vue and Node technology stack. The figure below shows the system architecture at the higher level. The client can access the web app through any internet based browser. The front-end technologies include Vue.js, which is the front-end framework, Bootstrap, which is a front-end styling framework, HTML and CSS. Vue.js can be used to make AJAX requests, make flexible and stable websites. Vue.js makes axios requests to the server that is built upon Node.js. ExpressJS is a library for Noe that includes a tonne of functions to handle requests and send responses back to front-ends. The database being used is MongoDB. Mongoose is a javascript library that bridges the gap between mongo shell commands and javascript. Furthermore, the web application uses another form of authentication which is the LinkedIn OAuth. Via this, a user is able to retrieve basic information about their profile.
Features
Comprehensive Profile Builder
The first step towards effectively matching candidates to companies is to onboard them with all their data, including educations, experiences, skills, awards and honors — which was securely stored on Mongo Atlas.
Concise Recommendation System
The recommendation give you educated guesses about companies or students that a student might be interested based on on previous matches and skill sets.
“What If” feature
If you are curious about the most in-demand skills, you can use our “What-if” feature where you can manually input skills to see the positions which require them.
Messaging
By using web sockets, we built a messaging system from scratch to enable students and employees to communicate before and after career fairs.
Backend
The backend was built using Node, MongoDB and web sockets. Authentication and LinkedIn OAuth was handled by PassportJS. All these were then deployed to a Heroku server.
GitHub repo for the backend can be found here.
Database Schema
Messaging via web sockets
The messaging system is built out of node web sockets. The Activity Diagram for its workflow is given below.
Reflection
Through the project, I was able hone my skills as a leader, project manager and full stack developer. The project touched upon every step of the software development lifecycle wile also pushing me to produce production level code. Below are some metrics of the work we put in
- 189 hours
- 30 issues resolved
- 12 code reviews
- 5 sprints
Achievement
Winning project out of 12 project for the course, Software Engineering CSCI-P565.