Full Stack Job Portal
This is a Full Stack Job Portal built using React JS, Tailwind CSS, Supabase, Clerk Authentication, and Shadcn UI. The project showcases a modern, responsive, and feature-rich job portal, demonstrating a comprehensive skill set in full-stack development.
Features
-
User Authentication: Secure authentication system using Clerk.
-
Supabase Integration: Data management and backend services handled by Supabase.
-
Shadcn UI Components: Utilized Shadcn UI for a consistent and sleek user interface.
-
Responsive Design: Styled with Tailwind CSS to ensure mobile responsiveness and ease of use.
-
Job Listings: Users can view, search, and filter job listings.
-
Save/Unsave Jobs: Users can save jobs for later reference.
-
Job Applications: Users can apply for jobs and track their application status.
-
User Onboarding: New users are guided through an onboarding process.
-
Company Management: Employers can add new companies and post jobs.
-
Application Management: Users can view their applications, and employers can track applicants.
-
Protected Routes: Ensured route protection based on user authentication.
-
Deployment: Deployed on a suitable hosting platform for public access.
Technologies Used
-
Frontend: React JS, Tailwind CSS, Shadcn UI
-
Backend: Supabase
-
Authentication: Clerk
-
State Management: React Hook Form, Zod
-
Custom Hooks: Created for data fetching and other reusable functionalities
Database Schema
Below is the database schema used in the project:
Setup and Installation
To get the project running locally, follow these steps:
-
Clone the Repository
```bash
git clone https://github.com/Samarjiit/job_portal.git
cd job_portal
```
-
Install Dependencies
Make sure you have Node.js installed, then run:
```bash
npm install
```
-
Set Up Supabase
- Create a project on Supabase.
- Retrieve your Supabase API URL and Key from the Supabase dashboard.
- Create the required tables in Supabase as per the data schema.
- Add these details to your environment variables.
-
Set Up Clerk Authentication
- Create an account on Clerk.
- Set up the authentication configuration as per your needs.
- Add Clerk credentials to your environment variables.
-
Environment Variables
Create a .env
file in the root directory and add the following:
```bash
REACT_APP_SUPABASE_URL=
REACT_APP_SUPABASE_KEY=
REACT_APP_CLERK_FRONTEND_API=
REACT_APP_CLERK_API_KEY=
```
-
Run the Application
Start the development server:
```bash
npm start
```
The application will run on http://localhost:3000
.
Deployment
To deploy the application:
-
Build the application:
```bash
npm run build
```
-
Deploy the build to your preferred hosting platform.