Giter Club home page Giter Club logo

homework's Introduction


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://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

homework's People

Contributors

juliantjg avatar utariq8688 avatar

Stargazers

 avatar

Watchers

 avatar

homework's Issues

Job application

  • User can apply for a job
  • An application entity stores job_id and applicant_id
  • Pending application label on a job when current user views a job they are applying for
  • The job creator can either accept the application or deny it
  • Once accepted, the job application object will get deleted. The job will be stored in user history. Also, job creator can choose either to remove the job advertisement or let it be. The applicant will be notified on this.
  • Once denied, the applicant will get notified. The job application object will get deleted. They can re apply.
  • Job will always show number of pending applicants.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.