A PMS for managin reservations in hotels, touristic flats or rural homes.
- Two user roles: user and admin
- Create customers and reservations
- Automatically assign rooms to reservations based on the number of nights and guests
- Calculates room occupation and total prices for each reservation
- Updload documents for check in
- PayPal integration
- Python 3
- PostgreSQL
- Docker
- Docker Compose
- Clone this repository.
- Navigate to the project directory.
- Create vitual enviroment
python -m venv venv- Activate virtual enviroment
- Windows:
venv\Scripts\activate- Linux/Mac:
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- run server
python manage.py runserver- Build the Docker image:
docker-compose build
- Start the services:
docker-compose up
- Service: Amazon S3
- Bucket
- Features: Standard S3 storage
- Service: Azure Blob Storage
- Features: SAS tokens for secure access
- Uses bucket policies for access control
- Public read access for media files
- IAM roles for secure access
- Uses SAS tokens for secure access
- No public access required
- Time-limited URLs (1 hour default)
- Automatic token regeneration
Create a .env file in the project root with the following configuration:
# Django Configuration
SECRET_KEY=your_secret_key_here
DDNS_HOSTNAME=your_domain
# PostgreSQL Database
POSTGRES_DB=reservation
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_postgres_password
DB_HOST=localhost
DB_PORT=5432
STORAGE_PROVIDER='azure' or 'aws'
# For Azure Blob Storage:
AZURE_ACCOUNT_NAME=your_azure_account
AZURE_ACCOUNT_KEY=your_azure_key
AZURE_CONTAINER=media
# For AWS S3:
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_STORAGE_BUCKET_NAME=your_bucket_name
AWS_S3_REGION_NAME=your_region
# Unsplash API (for room images)
# Get your Access Key at: https://unsplash.com/developers
UNSPLASH_ACCESS_KEY=your_unsplash_access_key_here