https://github.com/preston176/job-portal-alx
Repo for my ALX Short Specialization Full Stack Project
https://github.com/preston176/job-portal-alx
firebase mern-stack mongodb node react
Last synced: about 2 months ago
JSON representation
Repo for my ALX Short Specialization Full Stack Project
- Host: GitHub
- URL: https://github.com/preston176/job-portal-alx
- Owner: preston176
- Created: 2024-10-25T12:25:56.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-31T10:31:17.000Z (7 months ago)
- Last Synced: 2025-04-03T22:42:13.422Z (about 2 months ago)
- Topics: firebase, mern-stack, mongodb, node, react
- Language: JavaScript
- Homepage: https://youtu.be/b0n4dHOPf54
- Size: 974 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Job Portal
## Overview
- Job Portal is a full-stack web application designed to connect job seekers with employers.- The platform allows users to log in, apply for jobs, and leave reviews, while companies can sign up and post job vacancies.
- The application utilizes **Firebase** for authentication and MongoDB for storing job listings and applications.## Table of Contents
- [Job Portal](#job-portal)
- [Overview](#overview)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Prerequisites](#prerequisites)
- [Steps](#steps)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
- [Authentication](#authentication)
- [Jobs](#jobs)
- [Applications](#applications)
- [Reviews](#reviews)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgments](#acknowledgments)## Features
- **User Authentication**: Secure login and signup functionality for job seekers and employers using Firebase.
- **Job Listings**: Companies can post job vacancies with detailed descriptions.
- **Job Applications**: Users can apply for jobs directly through the platform.
- **Reviews**: Job seekers can leave reviews for companies based on their experiences.
- **Responsive Design**: The application is designed to work seamlessly across various devices.## Tech Stack
- **Frontend**:
- React
- Vite
- CSS Modules / Tailwind CSS (or other CSS frameworks)- **Backend**:
- Node.js
- Express.js
- MongoDB
- Firebase Authentication## Installation
To run the Job Portal locally, follow these steps:
### Prerequisites
- Node.js and npm installed
- MongoDB installed and running
- Firebase project set up for authentication### Steps
1. Clone the repository:
```bash
git clone https://github.com/preston176/job-portal-alx.git
cd job-portal-alx
```2. Install dependencies:
```bash
npm install
# or using yarn
yarn install
# or pnpm
pnpm install
```3. Set up environment variables:
- Create a `.env` file in the `Server` folder of your project and add the following:
```env
MONGODB_URI=your_mongodb_uri
PASSWORD=your_password
```4. Start the development server:
```bash
cd client
npm run dev
cd server
npm run dev
```
- Or use run Start.sh to start both the client and server
```
./start.sh
```5. Open your browser and navigate to `http://localhost:5173` to see the application in action.
## Usage
1. **For Job Seekers**:
- Sign up using your email and password.
- Browse job listings and apply for positions.
- Leave reviews for companies you have interacted with.2. **For Employers**:
- Sign up to create an account.
- Post new job vacancies with relevant details.
- Review applications and manage job listings.## API Endpoints
Here are the main API endpoints used in the application:### Authentication
- `POST /api/auth/signup`: Sign up a new user.
- `POST /api/auth/login`: Log in an existing user.
- `GET /api/auth/logout`: Log out the current user.### Jobs
- `GET /api/jobs`: Retrieve all job listings.
- `POST /api/jobs`: Create a new job listing (requires authentication).
- `GET /api/jobs/:id`: Get details of a specific job.
- `DELETE /api/jobs/:id`: Delete a specific job listing (requires authentication).### Applications
- `POST /api/applications`: Apply for a job (requires authentication).
- `GET /api/applications`: Retrieve all applications for the logged-in user.### Reviews
- `POST /api/reviews`: Leave a review for a company (requires authentication).
- `GET /api/reviews`: Retrieve reviews for a specific company.## Contributing
Contributions are welcome! If you'd like to contribute to Job Portal, please follow these steps:
1. Fork the repository.
2. Create a new branch (`git checkout -b feature/YourFeature`).
3. Make your changes and commit them (`git commit -m 'Add some feature'`).
4. Push to the branch (`git push origin feature/YourFeature`).
5. Open a pull request.## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.## Acknowledgments
- [ALX](https://www.alxafrica.com/) for providing the opportunity to learn and grow as a developer.
- Firebase for providing a robust authentication solution.
- MongoDB for offering a flexible database option.---
Feel free to reach out if you have any questions or suggestions!