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

Share this project:

Updates

Submission history