This is a fully customizable, production‑ready job application platform built for companies that need an alternative to enterprise systems. The platform includes:
- Backend: Node.js, Express, MongoDB (Mongoose) with endpoints to manage job postings and candidate applications.
- Frontend: A React application styled with Material UI (MUI) for a modern, responsive design.
- High Customizability: Easily change branding (company name, logo, etc.) via environment variables and configuration files; adjust UI components and backend logic as needed.
- Security & Best Practices: Uses Helmet for security headers, CORS for cross-origin support, and environment variables to protect sensitive data.
- Job Postings: Create, update, delete, and list job postings.
- Candidate Applications: Submit applications with resume URLs and cover letters.
- Customizable UI & Backend: Modify company branding and functionality with ease.
- Modern, Responsive Design: Built with Material UI to ensure a polished look across devices.
- Security: Implements Helmet and CORS for added security.
- Backend: Node.js, Express, MongoDB, Mongoose, dotenv, helmet, cors.
- Frontend: React, Material UI (MUI), Axios.
- Database: MongoDB
job-application-app/
├── backend/
│ ├── package.json
│ ├── .env
│ ├── server.js
│ ├── config/
│ │ └── db.js
│ ├── models/
│ │ ├── Job.js
│ │ └── Application.js
│ └── routes/
│ ├── jobs.js
│ └── applications.js
├── frontend/
│ ├── package.json
│ ├── public/
│ │ └── index.html
│ └── src/
│ ├── index.js
│ ├── App.js
│ ├── config.js
│ ├── components/
│ │ ├── Header.js
│ │ ├── Footer.js
│ │ ├── JobList.js
│ │ ├── JobForm.js
│ │ └── ApplicationForm.js
│ └── styles/
│ └── main.css
└── README.md
- Node.js (v14 or higher)
- npm (v6 or higher)
- MongoDB (local instance or hosted)
-
Navigate to the backend directory:
cd backend
-
Install dependencies:
npm install
-
Create a
.env
file in the backend directory with the following content (adjust as needed):PORT=5000 MONGO_URI=mongodb://localhost:27017/job_applications_db COMPANY_NAME=YourCompanyName COMPANY_LOGO_URL=https://example.com/logo.png
-
Start the backend server:
- For development:
npm run dev
- For production:
npm start
- API Endpoints:
- Health Check:
GET http://localhost:5000/api/health
- Jobs:
http://localhost:5000/api/jobs
- Applications:
http://localhost:5000/api/applications
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Customize settings:
Opensrc/config.js
and update:
backendUrl
(if different)companyName
companyLogoUrl
- Start the frontend development server:
The application will run at http://localhost:3000.
npm start
- Ensure your environment variables are set correctly and run:
npm start
- Build the React app:
npm run build
- Deploy:
Serve the contents of thebuild
folder using your preferred hosting solution, or integrate with your backend server.
-
Branding:
Update the company name and logo inbackend/.env
andfrontend/src/config.js
. -
UI Customization:
Modify Material UI components infrontend/src/components/
and adjust global styles infrontend/src/styles/main.css
as needed. -
Backend Customization:
Adjust models inbackend/models/
and API routes inbackend/routes/
to extend functionality or add new features.
Feel free to fork the repository and submit pull requests with improvements or customizations. For any issues or feature requests, please open an issue on the repository.
This project is licensed under the MIT License.
The UNC-Chapel Hill's Google Developer Student Club (GDSC) team is behind this project. For more information, visit GDSC UNC GitHub Page.