# Kiosk Guestbook (html-form Branch)
This branch implements a minimal HTML form-based guestbook for our museum visitor kiosk project. It uses a Python Flask backend with an SQLite database to store visitor entries. The application is containerized with Docker for easy deployment and testing.
## Features
- Visitor Form: Collects visitor name, email, and location.
- Data Storage: Uses SQLite to persist guest entries.
- Dockerized: Easily build and run the application in a Docker container.
- Minimal Viable Product: A simple, extendable starting point for your project.
## Project Structure
```
kiosk-guestbook/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── Dockerfile # Docker configuration file
└── templates/
└── index.html # HTML template for the guestbook form and entries list
```
## Installation and Setup
### Prerequisites
- Git: To clone the repository.
- Python 3.9+: To run the app locally (optional if using Docker).
- Docker: To build and run the container.
#### Checkout the Branch
If the repository is already initialized on the server (on the `main` branch), follow these steps:
1. Navigate to your repository directory:
`cd /path/to/kiosk-guestbook`
2. Fetch the latest branches:
`git fetch origin`
3. Checkout the html-form branch:
`git checkout -b html-form origin/html-form`
#### Running Locally
1. (Optional) Set up a virtual environment:
```
python3 -m venv venv
source venv/bin/activate
```
2. Install the dependencies:
`pip install -r requirements.txt`
3. Start the Flask application:
`python app.py`
4. Open your browser and navigate to to view the guestbook.
#### Running with Docker
1. Build the Docker Image:
`docker build -t guestbook .`
2. Run the Docker Container:
`docker run -p 5000:5000 guestbook`
3. Open your browser and navigate to .
### Troubleshooting
If you encounter issues during the Docker build (e.g., hanging during the `pip install` step):
- Use the Host Network:
`docker build --network=host -t guestbook .`
- Clear the Docker Build Cache:
`docker builder prune`
## Future Improvements
- Persistent Storage: Implement Docker volumes or a more robust database for data persistence.
- Enhanced Security: Add input validation, sanitization, and CSRF protection.
- Feature Expansion: Integrate additional museum kiosk features or analytics.
## License
TBD