Goals
- to help tourist find more specialized adventures by connecting them with local operators who are experts of the area.
- to create good foundation that's simple to expand and scalable
Why
by using fastapi -> one just has to add routes to include more pages and functionality
by using postgresql -> it can support many types of databases, including JSON.
by using polar.sh -> it delegates payment to a trusted provider that can also handle multiple currencies. Important since most tourists won't have the same currency as operators.
by using htmx -> it allows site to be small and fast, allowing site to work properly even in locations with poor internet speeds.
AI not needed at the moment -> faster and reliable to use simple filters to narrow down choices. If one incorporates AI too early, it will be too expensive to justify it's assistance.
Github Repo
- available per request
Folder structure of app
travel_adventures/
├── .gitignore # Exclude venv, .env, __pycache__, etc.
├── README.md
├── pyproject.toml # Project metadata and dependencies
├── .env # Environment variables (DB_URL, etc.)
├── app/ # Main application package
│ ├── __init__.py
│ ├── main.py # FastAPI entry point (app initialization)
│ ├── database.py # SQLAlchemy/Postgres connection logic
│ ├── auth.py # fastapi-users configuration
│ ├── routers/ # API endpoints (listing, booking, etc.)
│ │ ├── __init__.py
│ │ ├── auth.py
│ │ ├── bookings.py
│ │ └── listings.py
│ ├── templates/ # Jinja2 HTML files
│ └── static/ # CSS (Tailwind) and JS (Alpine.js)
└── tests/ # Test suite
What it does
- site allows tourist and operators to register
- for now, listings are hardcoded in
- allows users to book a listing and then pay for it.
- listings show up in user's account
How we built it
- fastapi
- fastapi-users
- htmx
- postgresql
- polar.sh (for payments)
Challenges we ran into
- connecting polar.sh to our service
Accomplishments that we're proud of
- building the site without heavy framework, like django, react, node.js, and tailwind
What we learned
- planning keeps progress steady
- documentation helps with refactor and debugging
What's next for maharashtra adventures
- allow operators to create itineraries
- have bookings notify operators of purchase.
alternate video link
Built With
- fastapi
- postgresql
- python