Jobkinator (Website)
Jobkinator is a web application designed to streamline and gamify the often daunting process of searching for jobs or internships.
Built using React and TypeScript for the user interface and FastAPI for handling API requests to an SQL database, it provides users with tools to search and filter job listings, track their applications, and maintain motivation through features like streaks and leaderboards. These gamified elements reward users for their consistency, creating a sense of achievement and fostering healthy competition to encourage daily engagement. By integrating advanced SQL queries and robust backend functionalities, Jobkinator simplifies the job hunting process while making it more interactive and engaging. Ultimately, the application aims to increase users' chances of landing their desired roles by fostering persistence and enthusiasm in the application process.
![]() |
![]() |
Clone the repository using this url:
https://github.com/bose-pramuanpornsatid/jobkinator-platform-project.git
Jobkinator
├- client
├- data_import
├- docs
├- server
folder | info |
---|---|
client | Frontend (Vite + React + Typescript) |
data_import | Data Cleaning + Imports (Jupyter Notebook) |
docs | Project Documents (Proposal + Database Design + API Docs) |
server | Backend (Python + FastAPI) |
- Install npm: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm
- Navigate to client
cd client
- Install npm dependencies
npm install
- Running the development server
npm run dev
- Install Python: https://www.python.org/downloads/
- Navigate to server
cd server
- Create a virtual environment
python -m venv venv
-
Activate the virtual environment
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
-
Install the required dependencies
pip install -r requirements.txt
- Running the FastAPI server
uvicorn main:app --reload
- Install Python: https://www.python.org/downloads/
- Navigate to data_import
cd data_import
- Create a virtual environment
python -m venv venv
-
Activate the virtual environment
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
-
Install the required dependencies
pip install -r requirements.txt
- Run the Jupyter Notebook
jupyter notebook
The database design for Jobkinator includes several entities and relationships that capture the core functionalities of the application. The UML diagram below provides a visual representation of these entities and their relationships.
For a detailed explanation of the database design, including assumptions, normalization, and logical design, please refer to the Database Design Document.
We want to 'gamify' the process of applying to Full-Time Positions / Internships. This is accomplished through having people build their own internship 'personality' representing which jobs or technical domains they are interested in and using that to create a custom set of filters for jobs that they are interested in. We can also let people access the interface directly using the filter to determine which jobs they want.
As an extra layer on top of this concept we want to make it a social system where you can collect 'streaks' for continually applying to jobs much like duolingo and possibly have a friends system setup where you can track and update each other on progress. You can also combine this with the personality concept to come up with levels or experience points to further extend the game concept. The point is to drive motivation for applying to internships and encourage people to keep on applying