A modern, lightweight job board platform built with vanilla JavaScript, HTML, and CSS. No frameworks, no dependenciesβjust clean, efficient code.
- Overview
- Features
- Demo
- Getting Started
- Project Structure
- Usage
- Configuration
- Contributing
- Roadmap
- License
- Contact
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
- π 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
- π 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
- π 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
# Quick start - no installation required!
python -m http.server 8000Then open http://localhost:8000 in your browser.
- A modern web browser (Chrome, Firefox, Safari, Edge)
- Optional: Python 3.x or Node.js for local development server
-
Clone the repository
git clone https://github.com/Reda-Ganoutre01/JobStart.git cd JobStart -
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:8000Option C: Node.js Serve
npx serve -s . -l 8000 # Navigate to http://localhost:8000
-
Start exploring! π
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
- 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
Navigate to Offers.html to view all available job listings. Use the search and filter options to find specific opportunities.
Click on any job card to view complete details including requirements, responsibilities, and application instructions.
- Candidates: Use
form-candidat.htmlto create your profile - Recruiters: Use
form-recruteur.htmlto post new opportunities
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"]
}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",
};Modify CSS variables in css/style.css:
:root {
--primary-color: #your-color;
--secondary-color: #your-color;
--font-family: "Your Font", sans-serif;
}We welcome contributions from the community! Here's how you can help:
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/AmazingFeature) - βοΈ Commit your changes (
git commit -m 'Add some AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
- Write clean, commented code
- Follow existing code style and structure
- Test across multiple browsers
- Update documentation for new features
- 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
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.
This project is licensed under the MIT License - see the LICENSE file for details.
Reda Ganoutre
- GitHub: @Reda-Ganoutre01
- Thanks to all contributors who help improve this project
- Inspired by modern job board platforms
- Built with β€οΈ using vanilla web technologies
Have questions or suggestions? Feel free to:
- π§ Open an issue
- π¬ Start a discussion
- π¦ Reach out on social media
Made with β€οΈ by the JobStart team


