A centralized booking and calendar system built for a small organization to eliminate double bookings and reduce administrative costs.

Problem

A small organization lacked structured planning for their pickups/deliveries, relying on manual scheduling that led to double bookings and high administrative costs. Staff had to manually coordinate bookings across multiple channels, resulting in conflicts and wasted time. There was a clear need for a centralized system that could manage all bookings automatically.

Approach

I was responsible for the full design and implementation of the backend using Python and Flask. SQLAlchemy was chosen as the ORM for database modeling due to its flexibility and strong integration with Flask. I designed RESTful APIs for all booking flows, ensuring clean separation between the API layer and business logic. For authentication, I implemented role-based access and session management to ensure only authorized staff could modify bookings. The system was deployed directly on a Linux server.

Features

  • Centralized Booking: Single system for managing all organizational bookings
  • Calendar Management: Visual calendar interface for a easy overview
  • RESTful APIs: Clean API design for all booking operations
  • Role-Based Access: Different permission levels for staff members
  • Session Management: Secure user sessions with proper authentication
  • Linux Deployment: Runs directly on a Linux server

What it offers

The system eliminates double bookings through a centralized calendar that shows all reservations in real-time. Administrative costs are reduced as staff no longer need to manually coordinate bookings across multiple channels. The RESTful API design allows for future integrations with other systems, and the role-based access ensures data integrity. The system has been running in production on a Linux server, handling daily bookings reliably.

Tech Stack:

  • Backend: Python, Flask
  • Database: PostgreSQL (SQLAlchemy)
  • Infrastructure: Linux, Docker
  • APIs: RESTful design with proper HTTP methods

Repository: git.jimmy-b.se/JimBer110/pickup_scheduler