A modern real estate platform for Venezuelan properties, enabling international buyers to discover and inquire about properties while Venezuelan agents manage their listings.
- Property Listings: Browse properties with advanced filtering and search
- Multi-language Support: Full English and Spanish localization
- Agent Dashboard: Agents can create, edit, and manage their property listings
- Inquiry System: Potential buyers can submit inquiries directly from property pages
- Authentication: Auth0-based authentication with social login support
- Responsive Design: Mobile-first, elegant UI built with Tailwind CSS
- Django 5.x with Django REST Framework
- PostgreSQL database
- Redis for caching and sessions
- Auth0 JWT authentication
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Atomic Design component system
- next-intl for i18n
- Docker & Docker Compose
- Railway-ready configuration
- Docker and Docker Compose
- Node.js 20+ (for local frontend development)
- Python 3.12+ (for local backend development)
- Clone the repository:
git clone https://github.com/yourusername/venezuelan-real-state.git
cd venezuelan-real-state- Create environment files:
# Backend
cp backend/.env.example backend/.env
# Frontend
cp frontend/.env.example frontend/.env.local-
Configure Auth0 (optional for basic functionality):
- Create an Auth0 application at https://auth0.com
- Update the
.envfiles with your Auth0 credentials
-
Start the services:
docker-compose up -d- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/v1/
- API Documentation: http://localhost:8000/api/docs/
- Admin: http://localhost:8000/admin/
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment
cp .env.example .env
# Run migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Run development server
python manage.py runservercd frontend
# Install dependencies
npm install
# Set up environment
cp .env.example .env.local
# Run development server
npm run devvenezuelan-real-state/
├── backend/
│ ├── config/ # Django project settings
│ ├── apps/
│ │ ├── accounts/ # User authentication
│ │ ├── properties/ # Property listings
│ │ ├── inquiries/ # Contact requests
│ │ └── common/ # Shared utilities
│ ├── api/v1/ # API endpoints
│ └── tests/ # Test suite
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ ├── components/
│ │ │ ├── atoms/ # Basic UI elements
│ │ │ ├── molecules/# Composed components
│ │ │ ├── organisms/# Complex components
│ │ │ └── templates/# Page layouts
│ │ ├── lib/ # Utilities and API client
│ │ ├── locales/ # i18n translations
│ │ └── types/ # TypeScript types
│ └── public/ # Static assets
├── docker-compose.yml
└── README.md
GET /api/v1/properties/- List all active propertiesGET /api/v1/properties/{slug}/- Get property detailsGET /api/v1/properties/featured/- Get featured propertiesPOST /api/v1/inquiries/- Submit an inquiry
GET /api/v1/agent/properties/- List agent's propertiesPOST /api/v1/agent/properties/- Create a propertyPATCH /api/v1/agent/properties/{id}/- Update a propertyDELETE /api/v1/agent/properties/{id}/- Delete a propertyGET /api/v1/agent/inquiries/- List inquiries for agent's properties
GET /api/v1/auth/me/- Get current userPATCH /api/v1/auth/me/- Update profilePOST /api/v1/auth/become-agent/- Register as agent
cd backend
pytest
pytest --cov=apps --cov-report=htmlcd frontend
npm test- Create a new Railway project
- Add services:
- PostgreSQL
- Redis
- Deploy backend:
- Set build command:
pip install -r requirements.txt - Set start command:
gunicorn config.wsgi:application - Add environment variables from
.env.example
- Set build command:
- Deploy frontend:
- Set build command:
npm run build - Set start command:
npm start - Add environment variables from
.env.example
- Set build command:
| Variable | Description | Default |
|---|---|---|
DEBUG |
Debug mode | True |
SECRET_KEY |
Django secret key | - |
DATABASE_URL |
PostgreSQL connection URL | - |
REDIS_URL |
Redis connection URL | - |
AUTH0_DOMAIN |
Auth0 domain | - |
AUTH0_API_IDENTIFIER |
Auth0 API identifier | - |
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_API_URL |
Backend API URL | http://localhost:8000/api/v1 |
AUTH0_SECRET |
Auth0 session secret | - |
AUTH0_BASE_URL |
Application base URL | - |
AUTH0_ISSUER_BASE_URL |
Auth0 domain URL | - |
AUTH0_CLIENT_ID |
Auth0 client ID | - |
AUTH0_CLIENT_SECRET |
Auth0 client secret | - |
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests
- Submit a pull request
MIT License - see LICENSE file for details.