Full-stack job application manager with progress tracking, dashboard, and image uploads.
- Framework: React (via Vite)
- Styling: Tailwind CSS, DaisyUI, styled-components, react-icons
- State/Data: @tanstack/react-query, Axios
- Visualization: Chart.js, react-chartjs-2
- Routing: react-router
frontend/
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ ├── pages/
│ ├── hooks/
│ ├── utils/
│ ├── App.jsx
│ └── main.jsx
├── package.json
└── README.md
- User authentication & registration
- Job board: browse, search, and apply for jobs
- Pagination for improved navigation through job listings
- Dashboard with analytics (charts, stats)
- Profile Management
- Responsive, dark-theme support
- Toast notifications and UX enhancements
- Language/Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (via Mongoose)
- Authentication: JWT (jsonwebtoken)
- Security: Helmet, express-rate-limit, express-mongo-sanitize, cookie-parser
- Utilities: dotenv, dayjs, multer, nanoid, morgan, chalk, cloudinary
backend/
├── controllers/
├── models/
├── routes/
├── middleware/
├── utils/
├── index.js
├── package.json
└── .env (see below)
- RESTful API for job, user, and application management
- JWT-based authentication and role management
- Follows Model-View-Controller (MVC) architecture for clean separation of concerns
- Advanced query support: sorting, pagination, and searching
- File uploads (e.g., resumes, avatars) with Multer and Cloudinary
- Input validation and rate limiting
- Logging and error handling
- Environment-based configuration
- Test user access available for demo and evaluation purposes
| Name | Description | Example Value |
|---|---|---|
PORT |
Port on which the backend server runs | 3000 |
MONGODB_URI |
MongoDB connection string | mongodb://localhost:27017/careerly |
JWT_SECRET |
Secret key for JWT signing | <your_jwt_secret> |
CLOUDINARY_CLOUD_NAME |
Cloudinary account cloud name | <your_cloud_name> |
CLOUDINARY_API_KEY |
Cloudinary API key | <your_api_key> |
CLOUDINARY_API_SECRET |
Cloudinary API secret | <your_api_secret> |
NODE_ENV |
Node environment (development/production) |
development |
FRONTEND_URL |
URL of the frontend app for CORS | http://localhost:5173 |
Be sure to create a .env file in the backend/ directory with these variables.
git clone https://github.com/EnigmaXV/Careerly.git
cd CareerlyInstall backend dependencies:
npm installInstall frontend dependencies:
cd frontend
npm installnpm run devThis will run nodemon backend/index.js (as defined in root package.json), starting the Express server.
In a new terminal, from the frontend/ directory:
npm run devThis will start the Vite development server (usually at http://localhost:5173).
