An adaptive recovery marketplace that leverages user lifestyle metrics to deliver context-aware, personalized recovery service recommendations and appointment bookings
Many recovery providers are scattered across local listings, studio pages, and marketplace directories. Reboot centralizes:
- searchable recovery studio discovery
- service listings and pricing details
- booking requests for individual sessions
- saved favorites for quick return visits
- studio import from live local-business search
- optional AI-assisted recommendations for recovery goals
- Search studios by category, keyword, or ZIP code
- Studio detail view with service offerings and booking form
- Favorites list for tracking preferred studios
- Booking request workflow and cancellation
- Data import from SerpApi with studio and default service creation
- Optional Gemini-powered recommendation text
Reboot is built with:
- Python 3
- Flask as the web framework
- SQLAlchemy ORM with SQLite for persistence
- Server-rendered HTML templates and CSS for the frontend
- External service integration for data import and recommendations
The codebase is separated into clear layers:
backend/app.py: Flask application factorybackend/config.py: environment-driven configurationbackend/db/: database connection, models, and query logicbackend/routes/: route blueprints grouped by domainbackend/services/: business logic and external API wrappersfrontend/templates/: rendered HTML pagesfrontend/static/: CSS stylesdocs/: architecture, database design, API reference, and user flows
- Clone the repository:
git clone <repo-url> recoveryhub
cd recoveryhub- Create and activate a virtual environment:
python -m venv .venv
.\.venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create a
.envfile in the repository root with values such as:
SECRET_KEY=your-secret-key
DATABASE_PATH=backend/db/reboot.db
SERPAPI_KEY=your-serpapi-key
GEMINI_API_KEY=your-gemini-key
HOME_LAT=40.7410
HOME_LNG=-73.9896python backend/app.pyOpen http://127.0.0.1:5000 in your browser.
For production, run behind a WSGI server such as Gunicorn:
gunicorn --bind 0.0.0.0:8000 backend.app:appRecommended production improvements:
- Replace SQLite with PostgreSQL or MySQL
- Store session secrets in a secure vault
- Add HTTPS / TLS termination
- Add structured logging and request monitoring
- Add booking availability and provider confirmation workflows
- Add automated tests and CI checks
See the docs/ folder for:
architecture.mddatabase-design.mdapi-overview.mduser-flow.md
