Careers: an open-source Laravel job board
Careers is an open-source job listing application built with Laravel, Tailwind and vanilla JavaScript. It began as the final project of the Laracasts 30 Days to Learn Laravel course.
A tutorial ends where a product begins
The course project works, and that is all it has to do. Anyone can post a job, anyone can edit anyone's listing, there is no way back into an account whose password has gone, and the seeded data falls over on a duplicate key. None of that is a flaw in the course — a tutorial has to stop somewhere, and it stops at the point where the idea is demonstrated.
That point is exactly where the work starts. What separates something that runs from something that could be used is ownership, permissions, recovery, pagination, and the dozen small refusals that stop one user damaging another's data. It is the least glamorous half of any application and it is most of the actual engineering.
So I kept going. What is published here is what I added on top, which is most of what makes it usable.
Accounts and permissions
Admin capabilities across every job and every account.
An admin-only companies page.
A profile page with editing.
Company-scoped listings, with edit and delete restricted to the owner.
Password reset and remember-me.
Search and browsing
Search validation.
Pagination on the home, results and companies pages.
Featured listings marked in the results grid.
Interface
Dark and light mode.
A sliding mobile menu.
Flash messaging after every create, edit and delete.
Layout fixes, including centred final rows.
Development
Reworked company-logo seeding to produce usable dummy data.
Reworked job-tag seeding to eliminate duplicate-key errors.
The source and a live demo are linked in the sidebar. It is open source because the gap it fills is a common one: the version most people finish a course with is the version this one starts from.
Development tools
-
Laravel
-
Tailwind
-
Javascript