Go to file
2025-02-28 15:18:01 -05:00
db Add CONTRIBUTE and update README 2025-02-28 15:18:01 -05:00
pages Significant admin UI improvements 2025-02-25 00:27:29 -05:00
public Updated buttons 2025-02-27 18:25:53 -05:00
timepicker-modal Update timepicker element 2025-02-27 17:14:07 -05:00
views Updated buttons 2025-02-27 18:25:53 -05:00
.cursorrules Updated buttons 2025-02-27 18:25:53 -05:00
.gitignore Init commit 2025-02-21 15:20:02 -05:00
CONTRIBUTING.md Add CONTRIBUTE and update README 2025-02-28 15:18:01 -05:00
favicon.ico Init commit 2025-02-21 15:20:12 -05:00
package-lock.json Init commit 2025-02-21 15:20:12 -05:00
package.json Init commit 2025-02-21 15:20:12 -05:00
README.md Add CONTRIBUTE and update README 2025-02-28 15:18:01 -05:00
server.js Init commit 2025-02-21 15:20:12 -05:00

FreeSched

A lightweight, open-source scheduling tool for managing appointments with a clean, intuitive interface.

Features

  • Simple Scheduling: Create unique scheduling identifiers (UIDs) for different meeting types
  • Visual Calendar Interface: Easy-to-use calendar for both admin and users
  • Time Slot Management: Flexibly define available time slots on specific dates
  • Booking System: Let others book available time slots with name, email, and notes
  • Admin Dashboard: Manage UIDs and availability all in one place
  • Local Database: SQLite-based storage for simplicity and portability

Live Demo

Access the main scheduling page: http://localhost:3000/ Access the admin interface: http://localhost:3000/admin

Quick Start

Prerequisites

  • Node.js (version 12 or higher)
  • npm

Installation

  1. Clone the repository

    git clone https://github.com/moeny/freesched.git
    cd freesched
    
  2. Install dependencies

    npm install
    
  3. Start the server

    npm start
    
  4. Access the application

Usage Guide

Admin Interface

  1. Create a UID: Click "Create" button and enter a unique identifier
  2. Manage Availability:
    • Select a UID from the dropdown
    • Navigate through the calendar to select dates
    • Add and manage time slots for each date
  3. Clear Availability: Reset all availability for a specific UID
  4. Delete UID: Remove a UID and all its associated availability data

User Scheduling Interface

  1. Users visit your unique scheduling link
  2. They select an available date from the calendar
  3. They choose an available time slot
  4. They enter their contact information to confirm the booking

Development

The project structure is organized as follows:

  • server.js - Express server and API endpoints
  • db/ - SQLite database and initialization
  • views/ - HTML templates for admin and public interfaces
  • public/ - JavaScript, CSS, and static assets
  • timepicker-modal/ - Custom timepicker component

Technologies Used

  • Backend: Node.js with Express
  • Database: SQLite3
  • Frontend: HTML, CSS, JavaScript
  • UI Framework: Bootstrap 5
  • Icons: Bootstrap Icons

License

ISC

GitHub Repository

https://github.com/moeny/freesched