Skip to content

aishwaryabodhe1122/JobPulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobPulse - Unified Job Discovery Platform

🚀 Overview

JobPulse is a comprehensive job aggregation platform that automatically scrapes and centralizes job postings from company career sites, providing job seekers with a unified platform to discover opportunities across multiple companies.

✨ Key Features

  • Auto-Aggregation: Automatically fetches job postings every 4 hours
  • Multi-Platform: Web application and mobile app
  • Smart Search: Advanced filtering and search capabilities
  • Real-time Updates: Stay updated with the latest job postings
  • User Profiles: Personalized job recommendations

🏗️ Architecture

Backend (API & Core)

  • Language: Python 3.11+
  • Framework: FastAPI (async, auto OpenAPI docs)
  • Database: PostgreSQL + Redis
  • Search: OpenSearch/Elasticsearch
  • Authentication: JWT + OAuth2
  • Task Queue: Celery + Redis
  • Scraping: Playwright + BeautifulSoup4

Frontend

  • Web: Next.js (React) with SSR/SSG
  • Mobile: React Native (Expo)
  • UI: Tailwind CSS + Framer Motion
  • State: React Query for data fetching

DevOps & Infrastructure

  • Containerization: Docker + Docker Compose
  • CI/CD: GitHub Actions
  • Monitoring: Prometheus + Grafana
  • Error Tracking: Sentry
  • Cloud: AWS/GCP ready

🚦 Getting Started

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • Docker & Docker Compose
  • PostgreSQL
  • Redis

Quick Start

# Clone the repository
git clone https://github.com/yourusername/jobpulse.git
cd jobpulse

# Start with Docker Compose
docker-compose up -d

# Or run locally
# Backend
cd backend
pip install -r requirements.txt
uvicorn main:app --reload

# Frontend
cd frontend
npm install
npm run dev

📁 Project Structure

jobpulse/
├── backend/                 # FastAPI backend
│   ├── app/
│   │   ├── api/            # API routes
│   │   ├── core/           # Core functionality
│   │   ├── models/         # Database models
│   │   ├── schemas/        # Pydantic schemas
│   │   ├── services/       # Business logic
│   │   └── scrapers/       # Job scraping modules
│   ├── alembic/            # Database migrations
│   ├── tests/              # Backend tests
│   └── requirements.txt
├── frontend/               # Next.js frontend
│   ├── components/         # React components
│   ├── pages/              # Next.js pages
│   ├── styles/             # CSS/Tailwind styles
│   ├── utils/              # Utility functions
│   └── public/             # Static assets
├── mobile/                 # React Native app
├── docker-compose.yml      # Development environment
├── .github/                # GitHub Actions
└── docs/                   # Documentation

🔧 Development

Environment Setup

  1. Copy environment files:

    cp backend/.env.example backend/.env
    cp frontend/.env.example frontend/.env.local
  2. Update configuration values in the .env files

  3. Run database migrations:

    cd backend
    alembic upgrade head

Available Scripts

  • docker-compose up -d - Start all services
  • docker-compose down - Stop all services
  • make test - Run all tests
  • make lint - Run linting
  • make format - Format code

📊 Monitoring & Observability

  • Health Checks: /health endpoint
  • Metrics: Prometheus metrics at /metrics
  • API Docs: Auto-generated at /docs
  • Logs: Structured logging with loguru

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆘 Support

For support, email support@jobpulse.com or join our Discord community.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors