Skip to content

Full-stack housework job seeking website with Spring Boot + React + ASP.NET Core

License

Notifications You must be signed in to change notification settings

juliantjg/homeWork

Repository files navigation


House Work Job/Employee Seeking App Made With React+Redux and Spring Framework/ASP.NET Core

Show screenshots


❓ What Is homeWork?

homeWork is a web application made with Spring Boot (backend api) and React.js + Redux (frontend), with a ASP.NET Core (backend api) version. A house work job website, homeWork provides a platform for both job seeker and recruiter. The application provides a wide range of functionalities listed below.

⚙️ Functionalities

Here is the complete homeWork functionalities rundown:

Click to expand
  1. Authentication with Spring Security (backend) + React (frontend)
  2. Registering as Job Seeker or Job Creator
  3. Route protection (only authenticated users can access the functionalitites)
  4. User functionalities separated by roles (job creator/job seeker)
  5. Create/update/delete jobs as a job creator
  6. Applying for a job as a job seeker
  7. Managing applications on application dashboard as job creator (accept/reject an application)
  8. Dashboard separation for different roles
  9. Jobs marketplace
  10. Job types with different thumbnails
  11. User profile page with unique gravatar image
  12. Proper statuses on job (pending/accepted/rejected application)
  13. Responsive sidebar
  14. View all my posted jobs as job creator

🔨 Utilization

homeWork utilizes the following points:

  • React functional components
  • State management with Redux
  • Spring Framework for API development
  • Spring Security for back end authentication and tokenization
  • ASP.NET Core MVC
  • ASP.NET Core JWT authentication + IdentityUser + auth middleware
  • Json Web Token - Jwt Api
  • MySQL for DB management
  • Docker containerization, docker-compose
  • Error handling with React/Redux
  • Responsive UI with CSS/Bootstrap
  • Gravatar pixel profile picture
  • JPA @Query on repository data fetching/modification

🐳 Getting Started With Docker

Wanna try out homeWork on your local machine? Here are the steps:

Simple setup with Docker

Both the frontend and backend (and MySQL database) were containerized within separate Docker containers, as provided here:
image image

  1. Create a file docker-compose.yml with the following content (you can also find it here):
version: '3'
services:
 db:
   image: mysql:8
   restart: always
   ports:
     - 3307:3306
   environment:
     MYSQL_DATABASE: homework
     MYSQL_USER: newuser
     MYSQL_PASSWORD: password
     MYSQL_ROOT_PASSWORD: password
 server:
   image: ghcr.io/juliantjg/homework-backend:latest
   restart: always
   ports:
     - 8080:8080
   depends_on:
     - db
   environment:
     SPRING_DATASOURCE_URL: jdbc:mysql:https://db:3306/homework?autoReconnect=true

 frontend:
   image: ghcr.io/juliantjg/homework-frontend:latest
   ports:
     - 3000:3000
  1. Run the docker-compose.yml to start up the backend (server), frontend (frontend) and MySQL (db). (Please make sure your local port :3000 and :8080 aren't in use):
$ docker-compose up

=======================================================
Starting springdeploy_server_1         ... done
Starting springdeploy_frontend_1       ... done
Starting springdeploy_db_1             ... done
=======================================================
  1. Access the application by entering localhost:3000 on your browser:
  1. Done! Now you can login. The database have been seeded, thus you can find jobs on the Hunt Jobs dashboard. Here is an employer credential (you can also sign up as one):
email: [email protected]
password: password

🛠️ Built With

  • Spring Framework - The Spring Framework is an application framework and inversion of control container for the Java platform.
  • ASP.NET Core - ASP.NET Core is a free and open-source web framework and successor to ASP.NET, developed by Microsoft.
  • React - React is a free and open-source front-end JavaScript library for building user interfaces based on components.
  • Bootstrap - Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development.
  • MySQL - MySQL is an open-source relational database management system.
  • Redux - Redux is an open-source JavaScript library for managing and centralizing application state. It is most commonly used with libraries such as React or Angular for building user interfaces.
  • Docker - Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.

✍️ Authors

📜 License