A comprehensive real estate platform built with Next.js, Supabase, and modern web technologies. Alset provides property search, market analysis, and real estate tools for buyers and sellers.
- Property Search: Advanced property search with Mapbox integration
- User Authentication: Secure authentication with Supabase Auth
- Credit System: Flexible credit-based access to premium features
- Marketplace Intents: Buyer and seller intent management
- Real-time Updates: Live data updates and notifications
- Responsive Design: Mobile-first, responsive UI built with Tailwind CSS
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Backend: Supabase (PostgreSQL, Auth, Real-time)
- Maps: Mapbox API
- Payments: Stripe integration
- Email: Resend API
- Property Data: RapidAPI, Zillow API
- Deployment: Vercel-ready
- Node.js 18+
- npm or yarn
- Supabase account
- Mapbox account
- Stripe account (for payments)
- Resend account (for emails)
- RapidAPI account
git clone https://github.com/yourusername/alset-so.git
cd alset-sonpm install
# or
yarn install
# or
npm installCopy the environment template and fill in your values:
cp env.example .env.localEdit .env.local with your actual API keys and configuration:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Mapbox Configuration
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=your_mapbox_access_token
# Stripe Configuration
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_PREMIUM_PRICE_ID=your_stripe_premium_price_id
# Resend (Email) Configuration
RESEND_API_KEY=your_resend_api_key
# RapidAPI Configuration
NEXT_PUBLIC_RAPIDAPI_KEY=your_rapidapi_key
# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000- Go to your Supabase project dashboard
- Navigate to SQL Editor
- Run the SQL from
supabase/database/tables/tables.sql - Run the SQL from
supabase/database/functions/functions_fixed.sql
# Install Supabase CLI
npm install -g supabase
# Login to Supabase
supabase login
# Link your project
supabase link --project-ref your-project-ref
# Push the schema
supabase db pushnpm run dev
# or
yarn dev
# or
npm run devOpen http://localhost:3000 in your browser.
The application uses a PostgreSQL database with the following main tables:
- accounts: User account information
- user_credits: Credit balance and transaction history
- credit_transactions: Detailed credit transaction logs
- property_data_cache: Cached property information
- search_history: User search history
- marketplace_intents: Buyer/seller intents
See DATABASE_SCHEMA.md for detailed schema information.
Alset uses Supabase Auth with support for:
- Email/password authentication
- Google OAuth
- Email verification
- Password reset
The platform operates on a credit-based system:
- New users receive 10 welcome credits
- Credits are consumed for property searches
- Credits can be purchased or earned through subscriptions
- All transactions are logged for transparency
- One-Click Deploy: Click the button above to deploy instantly
- Manual Deploy: Connect your GitHub repository to Vercel
- Environment Variables: Set up your API keys in Vercel dashboard
- Auto-Deploy: Automatic deployments on every push to main
- Netlify: Deploy to Netlify
- Railway: Deploy to Railway
- Manual: See DEPLOYMENT.md for detailed instructions
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=your_mapbox_access_token
NEXT_PUBLIC_APP_URL=https://your-domain.comπ Detailed Deployment Guide: See DEPLOYMENT.md for comprehensive deployment instructions, troubleshooting, and best practices.
alsetmaps/
βββ app/ # Next.js app router pages
βββ src/
β βββ features/ # Feature-based modules
β β βββ authentication/
β β βββ property-search/
β β βββ marketplace-intents/
β β βββ property-management/
β β βββ shared/
β βββ integrations/ # Third-party service integrations
β βββ lib/ # Utility functions and helpers
βββ supabase/ # Database schema and migrations
βββ public/ # Static assets
βββ .github/ # GitHub Actions workflows
βββ components.json # shadcn/ui configuration
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs folder for detailed guides
- Issues: Report bugs and request features via GitHub Issues
- Discussions: Join the conversation in GitHub Discussions
Built with β€οΈ by the Alset team