- Node.js 18+
- Yarn package manager
- Supabase account and project
- Git
git clone <repository-url>
cd avent-properties
yarn installcp .env.example .env.localFill in your environment variables:
# 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
# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=Avent Properties- Create a new Supabase project
- Run the database migrations (see
supabase-rls-setup.sql) - Set up Row Level Security (RLS) policies
- Configure authentication settings
# Start development server
yarn dev
# Run tests
yarn test
# Run E2E tests
yarn test:e2e
# Type checking
yarn type-check
# Linting and formatting
yarn lint
yarn formatavent-properties/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes (GraphQL)
│ ├── auth/ # Authentication pages
│ ├── dashboard/ # User dashboards
│ ├── listings/ # Property listings
│ ├── property/ # Property details
│ └── reserve/ # Reservation flow
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ └── ... # Feature components
├── lib/ # Utilities and configurations
│ ├── graphql/ # GraphQL schema and resolvers
│ ├── hooks/ # Custom React hooks
│ ├── slices/ # Redux slices
│ ├── supabase.ts # Supabase client
│ ├── apollo-client.ts # Apollo Client config
│ └── store.ts # Redux store
├── rules/ # AI learning materials and development standards
├── docs/ # Project status and implementation tracking
├── __tests__/ # Test files
└── public/ # Static assets
The platform supports three user roles:
- Client: Browse properties, make reservations, view dashboard
- Agency: Manage properties, view reservations, agency dashboard
- Admin: Full access, financial console, user management
Authentication is handled via Supabase Auth with JWT tokens and Row Level Security (RLS) policies.
users- User accounts with role-based accessproperties- Property listings with details and mediaagencies- Real estate agenciestour_reservations- Tour bookings with deposit trackingtransactions- Financial transactions and commissionscontact_requests- Customer inquiries
- Primary: Gold accents (#D4AF37)
- Background: Dark theme with glassmorphism
- Text: High contrast for accessibility
- Headings: Playfair Display (luxury feel)
- Body: Inter (modern readability)
- Glassmorphism cards with backdrop blur
- Consistent spacing and typography
- Responsive grid layouts
- Accessible form components
# Run all tests
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage
yarn test:coverage
# Run specific test files
yarn test __tests__/graphql/
yarn test __tests__/components/- Unit Tests: Jest + React Testing Library for components
- Integration Tests: GraphQL API resolvers
- E2E Tests: Playwright for critical user flows
- Coverage: Minimum 80% coverage requirement
# Development
yarn dev # Start development server
yarn build # Build for production
yarn start # Start production server
# Testing
yarn test # Run unit tests
yarn test:ci # Run tests with coverage
yarn test:e2e # Run E2E tests
# Code Quality
yarn lint # Run ESLint
yarn format # Format with Prettier
yarn type-check # TypeScript type checking
# Git Hooks (automatic)
# pre-commit: lint, format, type-check
# pre-push: full test suite- Connect GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Database: Amazon RDS (PostgreSQL)
- Storage: S3 + CloudFront
- API: AWS AppSync or Lambda
- Frontend: Amplify or CloudFront
- Apollo Server + Supabase SDK
- Standard Apollo patterns
- Full TypeScript support
- Generated Supabase types
lib/graphql/
├── schema.ts # GraphQL schema definition
├── context.ts # Apollo context with auth
└── resolvers/
├── index.ts # Resolver aggregation
├── queries.ts # Query resolvers
└── mutations.ts # Mutation resolvers
- Use Supabase SDK calls in resolvers
- Maintain full TypeScript coverage
- Follow standard Apollo patterns
- Write comprehensive tests
🎯 Complete documentation is organized in the /docs folder
docs/index.md- COMPLETE PROJECT OVERVIEW (Start here!)docs/status/progress.yaml- Current project status and progressdocs/architecture/overview.md- Technical architecture detailsdocs/guides/- Implementation guides
rules/- Development standards and AI training materialsdocs/- Project status and implementation guides
→ See docs/index.md for complete documentation structure and navigation
We use Model Context Protocol (MCP) to enhance AI development assistance with 4-server setup (docs + rules).
→ See docs/index.md for complete MCP setup and testing instructions
- Follow coding standards in
standards/coding.md - Write tests for new features
- Use conventional commit messages
- Create feature branches from
dev - Submit pull requests for review
- Update documentation when making changes
Private project - All rights reserved
Built with ❤️ by Trees in Uruguay
- Last Updated: January 2025
- Documentation: ✅ CONSOLIDATED - Single source of truth in
docs/index.md - MCP Integration: ✅ COMPLETE - AI development assistance operational
- Next Review: Monthly or when major changes occur
📚 For complete documentation, start with docs/index.md
- Read this file for project overview and setup
- Go to
docs/index.mdfor complete documentation - Check
docs/status/progress.yamlfor current status - Follow setup instructions above
SOLID Principles & Enterprise Architecture Complete! ✅ We've successfully implemented enterprise-grade patterns including Repository Pattern, Validation Builder Pattern, and Custom Error Hierarchy following SOLID principles.
Welcome to Avent Properties! 🏖️