Skip to content

krobison10/applyapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

App.ly: Job Application and Interview Tracker

One-stop shop to track job applications and interviews.


🔗 Demo link:

Try App.ly now!

Feel free to sign up with fake info (the email wont need verifying).


📃 Table of Contents:


📕 About The App

App.ly is an application that allows users to track their job applications and interviews, all in one place, with a clean and minimal user interface, and without the extra bloatware included with other existing trackers. It was developed by Kyler Robison as part of a group database design project for TCSS 445 Database Systems Design, instructed by Dr. Eyhab Al-Masri at the University of Washington Tacoma. As a group, choosing to build a job application tracker was a no-brainer, as it was something that we would all use and certainly something that we'd probably all need. Keeping track of dozens of applications is no easy task, App.ly attempts to add simplicity to the process.


📸 Screenshots

apply dashboard   apply app view

apply account   apply int edit


💻 Technologies

Frontend:

JavaScript LogoHTML5 LogoCSS3 Logo

JavaScript HTML5 CSS3

Backend:

Python LogoFlask LogoMySQL Logo

Python Flask MySQL

Hosted with:

Heroku Logo

Heroku

It is what I like to call, the JMPF (JS-MySQL-Python-Flask) stack, pronounced gympf.


🛠️ Setup

  1. download or clone the repository
  2. install the following Python packages in your environment:
    • Flask==2.2.3
    • mysql-connector-python==8.0.32
  3. test flask local server with flask run

🤓 Approach

Project Structure

I opted to store the client and server in one repository. Given the steps for heroku deployment, I felt that it would be easier to have everything in one place. If I could do it again, I would separate them, (shocker) because it became very cumbersome to re-start the server to get the html templates to re render, among other reasons.

Because of that decision, the project has two major components, they live in the directories client and server. client of course contains the pages and any resources, sylesheets, and scripts that make them what they are. server contains the code that that makes it all happen, app.py houses all the endpoints that return static content as well as the endpoints that make up the RESTful API for handling the web service features associated with the application.

Tech Decisions

Frontend

I had wanted to use React.js for the frontend originally. For two reasons I opted not to use it though. Firstly, the timeframe. Given that my knowledge of React was on the introductory side, I determined that the deadline would interfere with my ability to learn the patterns and use the framework properly. Secondly, using any framework for a simpler app at the time seemed overkill, in hindsight, having reactive state and all the other things that react brings would have likely made the codebase much simpler and more reliable.

Bootswatch CSS was used for some of the elements, specifically the login/signup forms, the tables, and the buttons, but the rest was all vanilla CSS.

Building this client made me appreciate the reasons for why frontend frameworks and state management libraries were created. In my future projects, I think I will appreciate having them more than somebody who hasn't ever built a webapp the vanilla JavaScript way.

Backend

The choices here were relatively simple. I like python, I like its ability to get things done quickly, and its recent push to become much faster thanks to Faster CPython. I also had taken a liking to the simplicity of building a server with Flask a few months back after playing with the Java jax-rs framework.

The choice to use MySQL was also quite simple, the market was full of DBMS choices, but it would have been foolish to not choose the most widely used one that is open-source to boot.


📈 Status

App.ly is still in progress. After a brief hiatus, devlopment will continue.

Current backlog:

  • Security improvements: password encryption, provisions to avoid SQL injection
  • Limit display length of application and interview tables by using pages that can be clicked through
  • Add sort and filter to both applications and interviews tables
  • Improvements to application details: enlarge job description textbox, add application notes, add a field for posting link
  • Create a system to separate applications into seasons, so that previous year applications can be saved and used for user statistics
  • Create a stats page to display information like response rate, interview rate, etc.
  • Warning/confirm dialogues for delete actions
  • Implement delete account function for General Data Protection Regulation (GDPR) compliance
  • Implement a way to associate the specific resume and/or cover letter used for application

Credits

List of contriubutors:

About

App.ly: Job Application and Interview Tracker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •