JAT is a self-hosted job application tracker designed to help users manage their job search pipeline, from initial applications to final offers. Great for people that simply want to track their job applications without using an Excel sheet.
I initially started to build this application as my final project for the boot.dev Backend Go Developer course. However I quickly realized that I was trying to bundle too many features into what was supposed to be a simple skill showcase project. Because of that I decided to build the course showcase project and link it to v0.2.0 and from then on I would add the entire feature set that are described here as time goes on.
The end goal is to build a monolithic Go binary that bundles both a web-based user interface and a terminal user interface (TUI), making it easy to deploy as a single executable or container image.
Recommended for individuals or vocational schools/universities that want to provide a useful tool to help their students keep track of job applications, within the facilities local network.
This application was designed to be hosted by users in their own local networks/infrastructures.
Status: This project is under heavy development. Features, APIs, and data models may change without notice until this message is removed.
As mentioned above I wanted a tool that allowed me to track the applications I send out while job hunting, without relying on an spreadsheet. Don't get me wrong, I think spreadsheets are quite useful, its just that like many software developers I think many spreadsheets can be converted into a software tool. I also wanted to learn how to build a full fledged full stack application using both Go and React, I already had skills building frontend applications using React and plain old HTML. I didn't however know how to build a proper REST API that also serves a frontend, I have done it in the past on learning projects using NodeJS, but never outside of the JavaScript ecosystem.
I have lots of ideas that I still want to implement into this project even after landing a new job in this field, not because I want to monetize it or something like that, but because I really think this might be a useful tool. Learning how to write code isn't hard when you have the mindset for it, but learning how to build and design a scalable system is hard and is something that I find quite interesting.
In this initial stage of this project I've been focusing more on that than anything else, questions like "How can I make it so that I don't lose myself as this project grows?" and "How do I make this new feature backwards compatible with existing deployments?" are the main motivation for the continuation of the development of this tool. I have already identified a bunch of things that I'm going to rework and make easier to extend and maintain in the future, but I needed to just ship a MVP before proceeding with those things, which leads us to the current state of this tool.
You can already use it to manage the job applications you send out, get some statistics about them and even self host it if you wish to do it. But in the future the idea is to make a more complete tool that can be used by anyone that doesn't mind learning a bit of Docker and self hosting, however I haven't really focused on that yet since it's something I already know how to do and I since this is a learning project I much prefer to focus on learning new things before that.
- Clone this repository using
git clone https://github.com/filz0r/jat - Install the dependencies outlined in here
- Run
make demoinside a terminal opened with the downloaded repository - Go to
http://localhost:4200in your browser - Login using
test@test.comand123123to use a normal user - Login using
a@a.comand123123to use a admin user - Test out the application
- Clone this repository using
git clone https://github.com/filz0r/jat. - Copy
.env.sampleto.env. - Install the dependencies and make changes to the
.envfile (check this doc for further reference). - Then run the build step
make. - Launch the database container using
make dev_db_up. - Launch the server using
./jat server.
Note: Eventually this will change to a single docker-compose.yml file that will essentially do all these steps for you, but I'm leaving that to a different release.
Check the development docs.
Moved to here.
Moved to here.
