A venue reservation system built for CSCI 41 (Information Management) at Ateneo de Manila University.
State Spaces allows customers to browse and reserve venues across multiple buildings, with agents managing venue availability and maintenance teams.
- Browse venues by building, capacity, floor area, and type
- Make reservations with time slot conflict detection
- Renovation status tracking (unavailable venues auto-blocked)
- Agent and team management per building
- Amenity listings per venue
- Frontend: Streamlit
- Database: PostgreSQL
- ORM: SQLAlchemy
- Language: Python 3.10
The system models 6 core entities:
Building → Venue → Amenity
Venue ← Agent ← Team
Venue ← Reservation ← Customer
- Python 3.10+
- PostgreSQL (ensure the service is running before starting the app)
- Clone the repo
git clone https://github.com/yourusername/state-spaces.git
cd state-spaces- Create and activate a virtual environment
python -m venv venv
venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Set up the database
- Make sure PostgreSQL is running
- Create a database in pgAdmin or psql:
CREATE DATABASE statespaces;- Load the schema and seed data:
psql -U postgres -d statespaces -f db-working.sql- Configure your database connection by creating
.streamlit/secrets.toml:
[connections.postgresql]
dialect = "postgresql"
host = "localhost"
port = 5432
database = "statespaces"
username = "postgres"
password = "your_postgres_password"- Run the app
streamlit run main.pyThe app will open in your browser at http://localhost:8501.
- Use
secrets.toml.exampleas a reference for the required format - The
db-working.sqlfile includes sample data for 3 buildings, 5 venues, 5 customers, and reservations