db | ||
pages | ||
public | ||
timepicker-modal | ||
views | ||
.cursorrules | ||
.gitignore | ||
CONTRIBUTING.md | ||
favicon.ico | ||
package-lock.json | ||
package.json | ||
README.md | ||
server.js |
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
-
Clone the repository
git clone https://github.com/moeny/freesched.git cd freesched
-
Install dependencies
npm install
-
Start the server
npm start
-
Access the application
- Admin interface: http://localhost:3000/admin
- Create a UID in the admin interface
- Access your scheduling page at: http://localhost:3000/YOUR-UID
Usage Guide
Admin Interface
- Create a UID: Click "Create" button and enter a unique identifier
- Manage Availability:
- Select a UID from the dropdown
- Navigate through the calendar to select dates
- Add and manage time slots for each date
- Clear Availability: Reset all availability for a specific UID
- Delete UID: Remove a UID and all its associated availability data
User Scheduling Interface
- Users visit your unique scheduling link
- They select an available date from the calendar
- They choose an available time slot
- They enter their contact information to confirm the booking
Development
The project structure is organized as follows:
server.js
- Express server and API endpointsdb/
- SQLite database and initializationviews/
- HTML templates for admin and public interfacespublic/
- JavaScript, CSS, and static assetstimepicker-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