Ulo is a web application designed to connect renters with property listers and agents. It provides features for browsing property listings, user authentication, property management, agent verification, user profiles, reviews, and real-time chat between users.
- Backend:
- Python 3.10+
- Quart (Async Web Framework, ASGI)
- SQLAlchemy (Async ORM) with Alembic (Migrations)
- Pydantic (Data Validation & Schemas)
- Quart-Auth (Authentication)
- Quart-Schema (Schema Integration & OpenAPI)
- Redis (for WebSocket Pub/Sub)
- SQLite (Default Development DB) / PostgreSQL (Production)
- Hypercorn (ASGI Server)
- Frontend:
- React (UI Library)
- Vite (Build Tool & Dev Server)
- React Router (Routing)
- Axios (HTTP Client)
- CSS (Styling)
- Python 3.10+ & pip
- Node.js 16+ & npm (or yarn)
- Redis Server (for chat functionality)
- Navigate to API directory:
cd api - Create & Activate Python Virtual Environment:
python -m venv venv source venv/bin/activate # macOS/Linux # OR: venv\Scripts\activate.bat # Windows CMD # OR: venv\Scripts\Activate.ps1 # Windows PowerShell
- Install Python Dependencies:
pip install -r requirements.txt
- Configure Environment:
- Review/edit the
api/.envfile. EnsureDEV_DATABASE_URLandREDIS_URLare set correctly for your local setup.
- Review/edit the
- Database Migrations:
- Navigate to the project root (
cd ..if you are inapi/). - Apply migrations:
alembic upgrade head
- Navigate to the project root (
- Run Backend Server:
- From the project root directory (
Ulo/):hypercorn api.app:app --reload --bind 0.0.0.0:5000
- The API should be running at
http://localhost:5000.
- From the project root directory (
- Navigate to Frontend Directory (in a separate terminal):
cd frontend - Install Node Dependencies:
npm install # OR: yarn install - Run Frontend Dev Server:
npm run dev # OR: yarn dev- The frontend should open automatically at
http://localhost:3000.
- The frontend should open automatically at
- Open
http://localhost:3000in your browser.