Skip to content

Structured job data platform with JSON-LD integration for efficient job search... Created at https://coslynx.com

Notifications You must be signed in to change notification settings

coslynx/job-search-portal-mvp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

job-search-portal-mvp

A streamlined job search platform empowering users to find relevant opportunities with structured data and JSON-LD integration.

Developed with the software and tools below.

Framework: Next.js Frontend: TypeScript, React Backend: Node.js, Express.js Database: PostgreSQL
git-last-commit GitHub commit activity GitHub top language

πŸ“‘ Table of Contents

  • πŸ“ Overview
  • πŸ“¦ Features
  • πŸ“‚ Structure
  • πŸ’» Installation
  • πŸ—οΈ Usage
  • 🌐 Hosting
  • πŸ“„ License
  • πŸ‘ Authors

πŸ“ Overview

This repository houses the Minimum Viable Product (MVP) for a job search portal. This innovative web-based platform aims to revolutionize job hunting by providing a user-friendly, structured, and accessible experience. It utilizes cutting-edge technologies such as Next.js, TypeScript, React, and PostgreSQL, with a focus on structured data and JSON-LD integration for improved searchability.

πŸ“¦ Features

Feature Description
πŸ” Job Search Allows users to search for jobs using keywords, location, job title, company, and other criteria. Advanced filtering options are available to narrow down results.
πŸ“‘ Structured Data Presents job listings with well-defined categories (job title, company description, location, responsibilities, qualifications, salary range).
🌐 JSON-LD Integration Incorporates JSON-LD (JSON-LD for Linked Data) to enhance search engine visibility and discoverability of job listings.
πŸ‘€ User Authentication Enables users to create accounts, log in, and manage personal profiles, including saving jobs and accessing personalized features.
πŸ” Security Implements robust security measures to protect user data, including secure authentication, password hashing, and input validation.
πŸš€ Scalability Designed to handle increasing user volume and job postings, ensuring long-term sustainability and future expansion.
🎨 User Interface Offers a clear and intuitive interface across different devices, prioritizing ease of use and accessibility.
πŸ“Š Analytics Collects data on user interactions and job trends to improve the platform's effectiveness and personalize the user experience.

πŸ“‚ Structure

job-search-portal-mvp
β”œβ”€β”€ pages
β”‚   β”œβ”€β”€ search
β”‚   β”‚   └── index.tsx
β”‚   β”œβ”€β”€ job
β”‚   β”‚   └── [jobId].tsx
β”‚   β”œβ”€β”€ profile
β”‚   β”‚   └── index.tsx
β”‚   └── api
β”‚       β”œβ”€β”€ jobs
β”‚       β”‚   └── route.ts
β”‚       └── auth
β”‚           └── [...nextauth].ts
β”œβ”€β”€ components
β”‚   β”œβ”€β”€ shared
β”‚   β”‚   β”œβ”€β”€ Button.tsx
β”‚   β”‚   β”œβ”€β”€ Card.tsx
β”‚   β”‚   └── Input.tsx
β”‚   └── features
β”‚       β”œβ”€β”€ auth
β”‚       β”‚   └── LoginForm.tsx
β”‚       β”œβ”€β”€ search
β”‚       β”‚   β”œβ”€β”€ JobCard.tsx
β”‚       β”‚   └── SearchForm.tsx
β”‚       β”œβ”€β”€ job
β”‚       β”‚   └── JobDetails.tsx
β”‚       └── profile
β”‚           └── UserProfile.tsx
β”œβ”€β”€ lib
β”‚   β”œβ”€β”€ api
β”‚   β”‚   └── client.ts
β”‚   └── utils
β”‚       β”œβ”€β”€ formatters.ts
β”‚       └── helpers.ts
β”œβ”€β”€ styles
β”‚   └── globals.css
β”œβ”€β”€ public
β”‚   └── images
β”œβ”€β”€ .env.local
β”œβ”€β”€ .gitignore
β”œβ”€β”€ package.json
└── next.config.js

πŸ’» Installation

πŸ”§ Prerequisites

  • Node.js v18+
  • npm 8+
  • PostgreSQL 14+

πŸš€ Setup Instructions

  1. Clone the repository:
    git clone https://github.com/coslynx/job-search-portal-mvp.git
    cd job-search-portal-mvp
  2. Install dependencies:
    npm install
  3. Configure environment variables:
    cp .env.example .env
    Replace the placeholders in .env with your actual Supabase URL, API key, and any other necessary environment variables.
  4. Start the development server:
    npm run dev
    This will launch the application at http://localhost:3000.

πŸ—οΈ Usage

This MVP demonstrates the core features of the job search portal, including:

  • Job Search: Navigate to the homepage (http://localhost:3000) and use the search bar to find jobs based on keywords and location.
  • Job Details: Click on a job listing to view detailed information, including job title, company description, responsibilities, qualifications, salary range, and application instructions.
  • User Authentication: Use the "Sign In" button to register a new account or log in. Once logged in, you can save jobs to your profile.

🌐 Hosting

This MVP is designed to be deployed using Vercel. Here are the steps for deployment:

  1. Create a Vercel account if you don't have one already.
  2. Log in to Vercel and select "New Project".
  3. Import from Git and provide the repository URL: https://github.com/coslynx/job-search-portal-mvp
  4. Choose the environment variables for deployment (refer to the environment variables section below).
  5. Deploy your application! Once the deployment process is complete, you will have a live instance of the Job Search Portal MVP.

πŸ”‘ Environment Variables

  • SUPABASE_URL: Your Supabase URL
  • SUPABASE_KEY: Your Supabase API key
  • NEXTAUTH_SECRET: A unique secret key for NextAuth.js (generate using openssl rand -base64 32)
  • NEXTAUTH_URL: The URL of your Vercel deployment (e.g., https://your-job-portal.vercel.app)

πŸ“œ API Documentation

πŸ” Endpoints

Authentication

  • POST /api/auth/register
    • Description: Register a new user account.
    • Request Body: {"email": "your@email.com", "password": "password123", "name": "Your Name"}
    • Response (Success): {"id": "user-id", "email": "your@email.com", "name": "Your Name", "token": "your-jwt-token"}
    • Response (Error): {"error": "error message"}
  • POST /api/auth/signin
    • Description: Sign in an existing user.
    • Request Body: {"email": "your@email.com", "password": "password123"}
    • Response (Success): {"id": "user-id", "email": "your@email.com", "name": "Your Name", "token": "your-jwt-token"}
    • Response (Error): {"error": "error message"}
  • GET /api/auth/session
    • Description: Check for existing user sessions.
    • Headers: Authorization: Bearer TOKEN
    • Response (Success): {"id": "user-id", "email": "your@email.com", "name": "Your Name"}
    • Response (Error): {"error": "error message"}

Job Listing

  • GET /api/jobs
    • Description: Get a list of job listings based on search parameters.
    • Query Parameters: q=keywords, location=city,state (optional)
    • Response: [{"id": "job-id", "title": "Job Title", "company": "Company Name", "location": "City, State", "description": "Job Description", ...}]
  • GET /api/jobs/:id
    • Description: Get details for a specific job listing by ID.
    • Response: {"id": "job-id", "title": "Job Title", "company": "Company Name", "location": "City, State", "description": "Job Description", ...}]

πŸ”’ Authentication

  • User authentication is managed using NextAuth.js.
  • Users must register or sign in to access protected features like saving jobs.
  • JWT tokens are issued upon successful authentication.
  • Include the JWT token in the Authorization header for all protected API requests (e.g., Authorization: Bearer YOUR_JWT_TOKEN).

πŸ“ Examples

# Register a new user
curl -X POST http://localhost:3000/api/auth/register \
     -H "Content-Type: application/json" \
     -d '{"email": "your@email.com", "password": "password123", "name": "Your Name"}'

# Sign in an existing user
curl -X POST http://localhost:3000/api/auth/signin \
     -H "Content-Type: application/json" \
     -d '{"email": "your@email.com", "password": "password123"}'

# Get a list of job listings (with search parameters)
curl -X GET http://localhost:3000/api/jobs?q=Software+Engineer&location=San+Francisco,CA

# Get details for a specific job listing
curl -X GET http://localhost:3000/api/jobs/job-id-123

πŸ“œ License & Attribution

πŸ“„ License

This Minimum Viable Product (MVP) is licensed under the GNU AGPLv3 license.

πŸ€– AI-Generated MVP

This MVP was entirely generated using artificial intelligence through CosLynx.com.

No human was directly involved in the coding process of the repository: job-search-portal-mvp

πŸ“ž Contact

For any questions or concerns regarding this AI-generated MVP, please contact CosLynx at:

🌐 CosLynx.com

Create Your Custom MVP in Minutes With CosLynxAI!