Skip to content

JobStart is a simple, static job-offers front-end project that showcases listing and detail pages, candidate/recruiter forms, and dark-mode support. It uses plain HTML, modular CSS, and vanilla JavaScript with sample data stored in offers.json.

License

Notifications You must be signed in to change notification settings

Reda-Ganoutre01/JobStart

Repository files navigation

πŸš€ JobStart

License: MIT PRs Welcome

A modern, lightweight job board platform built with vanilla JavaScript, HTML, and CSS. No frameworks, no dependenciesβ€”just clean, efficient code.

πŸ“· Screenshot

App Screenshot App Screenshot App Screenshot


πŸ“– Table of Contents

🎯 Overview

JobStart is a fully static job board application designed for simplicity and performance. Built without any frameworks or build tools, it provides a complete job listing platform that can be deployed anywhereβ€”from GitHub Pages to any static hosting service.

Perfect for:

  • πŸŽ“ Learning web development fundamentals
  • πŸš€ Quick prototyping of job board concepts
  • πŸ“¦ Deployment-ready static sites
  • πŸ”§ Customization and extension

✨ Features

Core Functionality

  • πŸ“‹ Job Listings: Browse available job opportunities with filtering and search
  • πŸ” Detailed Views: View comprehensive job descriptions and requirements
  • πŸ‘€ User Forms: Separate forms for candidates and recruiters
  • πŸ“± Responsive Design: Mobile-first approach for all device sizes

User Experience

  • πŸŒ“ Dark Mode: Toggle between light and dark themes
  • ⚑ Fast Loading: Optimized assets and minimal dependencies
  • 🎨 Modern UI: Clean, professional interface design
  • πŸ”„ Client-Side Routing: Smooth navigation without page reloads

Technical Features

  • πŸ“Š JSON Data Store: Easy-to-edit job offers database
  • 🎯 Vanilla JavaScript: No framework lock-in
  • 🧩 Modular Architecture: Well-organized, maintainable code
  • πŸ”§ Zero Build Process: Deploy directly without compilation

🎬 Demo

# Quick start - no installation required!
python -m http.server 8000

Then open http://localhost:8000 in your browser.

πŸš€ Getting Started

Prerequisites

  • A modern web browser (Chrome, Firefox, Safari, Edge)
  • Optional: Python 3.x or Node.js for local development server

Installation

  1. Clone the repository

    git clone https://github.com/Reda-Ganoutre01/JobStart.git
    cd JobStart
  2. Choose your preferred method to run:

    Option A: Direct File Access

    # Simply open index.html in your browser
    open index.html  # macOS
    start index.html # Windows
    xdg-open index.html # Linux

    Option B: Python HTTP Server (Recommended)

    python -m http.server 8000
    # Navigate to http://localhost:8000

    Option C: Node.js Serve

    npx serve -s . -l 8000
    # Navigate to http://localhost:8000
  3. Start exploring! πŸŽ‰

πŸ“ Project Structure

JobStart/
β”‚
β”œβ”€β”€ πŸ“„ HTML Pages (Root Level)
β”‚   β”œβ”€β”€ index.html              # Home page / Landing page
β”‚   β”œβ”€β”€ login.html              # Login page
β”‚   β”œβ”€β”€ SignUp.html             # Sign up page
β”‚   β”œβ”€β”€ form-candidat.html      # Candidate registration form
β”‚   β”œβ”€β”€ form-recruteur.html     # Recruiter registration form
β”‚   β”œβ”€β”€ Offers.html             # Job offers listing page
β”‚   β”œβ”€β”€ OfferDetail.html        # Job offer detail page
β”‚   β”œβ”€β”€ create-offer.html       # Create/edit job offer page
β”‚   β”œβ”€β”€ profile.html            # User profile page
β”‚   β”œβ”€β”€ Apropos.html            # About page
β”‚   β”œβ”€β”€ Conseils.html           # Tips and advice page
β”‚   └── contact.html            # Contact page
β”‚
β”œβ”€β”€ πŸ–ΌοΈ assets/                  # Multimedia resources
β”‚   β”œβ”€β”€ bg/                     # Background images
β”‚   β”‚   β”œβ”€β”€ bg-blue v2.png
β”‚   β”‚   └── home-bg.jpg
β”‚   β”‚
β”‚   β”œβ”€β”€ icons/                  # SVG icons
β”‚   β”‚   β”œβ”€β”€ dark_mode_24dp_E3E3E3_FILL1_wght400_GRAD0_opsz24.svg
β”‚   β”‚   └── light_mode_24dp_E3E3E3_FILL1_wght400_GRAD0_opsz24.svg
β”‚   β”‚
β”‚   β”œβ”€β”€ images/                 # General images
β”‚   β”‚   β”œβ”€β”€ candidat.png
β”‚   β”‚   └── recruteur.png
β”‚   β”‚
β”‚   β”œβ”€β”€ logo/                   # Application logos
β”‚   β”‚   β”œβ”€β”€ logo-darkmode.png
β”‚   β”‚   β”œβ”€β”€ logo-lightmode.png
β”‚   β”‚   └── logo_jobstart_single.png
β”‚   β”‚
β”‚   β”œβ”€β”€ screenshot/             # App screenshots
β”‚   β”‚   β”œβ”€β”€ Screen_Web1.png
β”‚   β”‚   β”œβ”€β”€ Screen_Web2.png
β”‚   β”‚   └── Screen_Web3.png
β”‚   β”‚
β”‚   └── sounds/                 # Sound effects
β”‚       └── mixkit-cool-interface-click-tone-2568.wav
β”‚
β”œβ”€β”€ 🎨 css/                     # Stylesheets
β”‚   β”œβ”€β”€ style.css               # Main stylesheet
β”‚   β”œβ”€β”€ header.css              # Header styles
β”‚   β”œβ”€β”€ footer.css              # Footer styles
β”‚   β”œβ”€β”€ index.css               # Home page styles
β”‚   β”œβ”€β”€ login.css               # Login page styles
β”‚   β”œβ”€β”€ signup.css              # Sign up page styles
β”‚   β”œβ”€β”€ form-candidat.css       # Candidate form styles
β”‚   β”œβ”€β”€ form-recruteur.css      # Recruiter form styles
β”‚   β”œβ”€β”€ offers.css              # Offers page styles
β”‚   β”œβ”€β”€ offer_detail.css        # Offer detail styles
β”‚   β”œβ”€β”€ profile.css             # Profile page styles
β”‚   β”œβ”€β”€ Apropos.css             # About page styles
β”‚   β”œβ”€β”€ conseils.css            # Tips page styles
β”‚   β”œβ”€β”€ contact.css             # Contact page styles
β”‚   β”œβ”€β”€ loader.css              # Loading animation styles
β”‚   β”œβ”€β”€ popup.css               # Popup/modal styles
β”‚   └── scrollbar.css           # Custom scrollbar styles
β”‚
β”œβ”€β”€ πŸ’» js/                      # JavaScript files
β”‚   β”œβ”€β”€ main.js                 # Main JavaScript file
β”‚   β”œβ”€β”€ session.js              # User session management
β”‚   β”œβ”€β”€ login.js                # Login functionality
β”‚   β”œβ”€β”€ condidat.js             # Candidate form logic
β”‚   β”œβ”€β”€ recruteur.js            # Recruiter form logic
β”‚   β”œβ”€β”€ offers.js               # Offers page logic
β”‚   β”œβ”€β”€ offer_detail.js         # Offer detail page logic
β”‚   β”œβ”€β”€ create-offer.js         # Create offer logic
β”‚   β”œβ”€β”€ profile.js              # Profile page logic
β”‚   β”œβ”€β”€ applications.js         # Job applications management
β”‚   β”œβ”€β”€ contact.js              # Contact form logic
β”‚   β”œβ”€β”€ index.js                # Home page logic
β”‚   β”œβ”€β”€ darkmode.js             # Dark/light mode toggle
β”‚   β”œβ”€β”€ loading.js              # Loading animations
β”‚   β”œβ”€β”€ popup.js                # Popup/modal logic
β”‚   └── aos.js                  # Animate On Scroll library
β”‚
β”œβ”€β”€ πŸ“Š data/                    # Data files
β”‚   β”œβ”€β”€ auth.js                 # Default authentication data
β”‚   β”œβ”€β”€ offers.js               # Job offers database
β”‚   β”œβ”€β”€ forms.data.js           # Forms data
β”‚   β”œβ”€β”€ constants.global.js     # Global configuration constants
β”‚   └── cutomers.js             # Customer data
β”‚
β”œβ”€β”€ πŸ“š docs/                    # Project documentation
β”‚   β”œβ”€β”€ JobStar Docs.pdf        # Complete documentation
β”‚   └── Diagrams/               # UML diagrams
β”‚       β”œβ”€β”€ Class Diagram.png
β”‚       β”œβ”€β”€ Class Diagram v2.png
β”‚       β”œβ”€β”€ Diagram Use Cas.png
β”‚       └── diagram use cas v2.png
β”‚
β”œβ”€β”€ .gitignore                  # Git ignore file
β”œβ”€β”€ LICENSE                     # MIT License
└── README.md                   # Main documentation

πŸ“Š Overview

  • 13 HTML Pages: Complete application interface
  • 17 CSS Stylesheets: Modern and responsive design
  • 15 JavaScript Files: Modular application logic
  • 5 Data Files: Local information storage
  • PDF Documentation + UML Diagrams: Complete technical documentation
  • Organized Assets: Images, logos, icons, sounds

πŸ’‘ Usage

Browsing Jobs

Navigate to Offers.html to view all available job listings. Use the search and filter options to find specific opportunities.

Viewing Job Details

Click on any job card to view complete details including requirements, responsibilities, and application instructions.

Submitting Applications

  • Candidates: Use form-candidat.html to create your profile
  • Recruiters: Use form-recruteur.html to post new opportunities

Customizing Data

Edit data/offers.json to modify job listings:

{
  "id": "job-001",
  "title": "Frontend Developer",
  "company": "Tech Corp",
  "location": "Remote",
  "type": "Full-time",
  "description": "We're looking for...",
  "requirements": ["React", "JavaScript", "CSS"]
}

βš™οΈ Configuration

API Integration

To connect a backend API, update data/constants.global.js:

const API_BASE_URL = "https://your-api.com";
const API_ENDPOINTS = {
  offers: "/api/offers",
  apply: "/api/applications",
};

Theme Customization

Modify CSS variables in css/style.css:

:root {
  --primary-color: #your-color;
  --secondary-color: #your-color;
  --font-family: "Your Font", sans-serif;
}

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/AmazingFeature)
  3. ✏️ Commit your changes (git commit -m 'Add some AmazingFeature')
  4. πŸ“€ Push to the branch (git push origin feature/AmazingFeature)
  5. πŸŽ‰ Open a Pull Request

Development Guidelines

  • Write clean, commented code
  • Follow existing code style and structure
  • Test across multiple browsers
  • Update documentation for new features

πŸ—ΊοΈ Roadmap

  • Add pagination for job listings
  • Implement advanced search filters
  • Add job bookmarking functionality
  • Create admin dashboard
  • Integrate with backend API
  • Add email notifications
  • Implement user authentication
  • Add application tracking system

πŸ› Troubleshooting

Issue: JSON data not loading when opening files directly

Solution: Use a local development server (Python or Node) instead of opening HTML files directly in the browser.


Issue: Assets not displaying correctly

Solution: Verify that the assets/ directory is intact and file paths in HTML are correct.


Issue: Dark mode not persisting

Solution: Check browser's local storage settings and ensure JavaScript is enabled.

πŸ“„ License

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

πŸ‘¨β€πŸ’» Author

Reda Ganoutre

πŸ™ Acknowledgments

  • Thanks to all contributors who help improve this project
  • Inspired by modern job board platforms
  • Built with ❀️ using vanilla web technologies

πŸ“ž Contact

Have questions or suggestions? Feel free to:

  • πŸ“§ Open an issue
  • πŸ’¬ Start a discussion
  • 🐦 Reach out on social media

⬆ Back to Top

Made with ❀️ by the JobStart team

About

JobStart is a simple, static job-offers front-end project that showcases listing and detail pages, candidate/recruiter forms, and dark-mode support. It uses plain HTML, modular CSS, and vanilla JavaScript with sample data stored in offers.json.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •