Motivation
This is my first full-stack project to build from scratch. This project is mainly for me to experiment different technologies and learn about the integration between, frontend, backend and database.
1. Frontend
The popularity of Vue.js is rising quickly in recent years, being a React.js developer, I want to dive deeper to see
the mechanics behind Vue.js.
2. Backend
Spring Boot has always been a solid choice for the backend, by building the backend from scratch, I want to brush up on the best practice
and see what Spring Boot has to offer.
3. Database
MongoDB has always been a popular choice for NoSQL databases, coming from a SQL background, I want to learn the pros and cons
of NoSQL.
4. DevOps
CI/CD could provide much convenience when developing an application, with that said, I integrated with GitHub Action, Docker and AWS for the
deployment pipeline.
Description
The Green Project, where I use Vue.js, Spring Boot and MongoDB as the tech stack of this project.
Hirers are able to submit job requirements to the website with desired skills and job descriptions.
Job Seekers are able to view jobs with corresponding job titles and requirements.
Features
- Submit Job Listings
- Job Title
- Job Description
- Job Skills
- Years of Experience
- View Job Listings
- Filter By Keywords
- Filter By Job Skills
- User Login
- Additional features for login users
- Unlogged in user cannot call any API
Technical Details
- Vuex
- State management for the entire application
- JWT Token
- Backend will generate a JWT Token every time the user login, and store it in Cookie
- Frontend will look for the JWT Token in Cookie, verify and login the user if it is valid.
- Loading Screen / Error Screen
- There are many unexpected events that might happen, and catching these errors is very essential to keep the application running.