Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

335 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Soralia Village Community Platform

Next.js TypeScript Prisma Supabase TailwindCSS License

A comprehensive community management platform for the Soralia Village residential community, featuring resident directory, community services marketplace, real estate agent marketplace, and real-time messaging.

Soralia Village

๐ŸŒŸ Features

๐Ÿ‘ฅ Resident Directory

  • Community Directory: Browse and search all residents
  • Advanced Filtering: Filter by role, street, interests
  • Profile Management: Detailed resident profiles with contact information
  • Grid/List Views: Multiple viewing options for different preferences

๐Ÿ› ๏ธ Community Services Marketplace

  • Service Listings: Community members can offer services (gardening, plumbing, electrical, cleaning, etc.)
  • Service Categories: Organized by service type with professional verification
  • Provider Ratings: Review and rating system for service quality
  • Service Types: Community services, member services, trusted third-party providers
  • Admin Moderation: Content moderation and quality assurance

๐Ÿ  Real Estate Agent Marketplace

  • Verified Agents: EAAB-registered real estate professionals
  • Property Listings: Create and manage property listings for sale/rent
  • Commission Tracking: Transparent commission management
  • Agent Verification: Background checks and licensing verification
  • Premium Features: Advanced portfolio management for property investors

๐Ÿ’ฌ Real-Time Messaging

  • Direct Messaging: Private conversations between residents
  • Real-Time Updates: Instant message delivery via Supabase Realtime
  • Unread Indicators: Visual notifications for new messages
  • Message History: Persistent conversation history
  • Read Receipts: Track message delivery and read status

๐Ÿ‘จโ€๐Ÿ’ผ Admin Dashboard

  • User Management: Resident account administration
  • Content Moderation: Review and approve service listings
  • Analytics Dashboard: Platform usage statistics and insights
  • System Configuration: Platform settings and maintenance

๐Ÿ—๏ธ Architecture

Tech Stack

Layer Technology Purpose
Frontend Next.js 15, React 18, TypeScript Modern React framework with type safety
Styling TailwindCSS, PostCSS Utility-first CSS framework
Backend Next.js API Routes Serverless API endpoints
Database PostgreSQL Primary data storage
ORM Prisma 5 Type-safe database access
Authentication Better Auth Secure user authentication
Real-Time Supabase Realtime Live messaging and notifications
Deployment Vercel Global CDN and serverless deployment
Testing Vitest, Playwright Unit and E2E testing

System Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Next.js App   โ”‚โ”€โ”€โ”€โ”€โ”‚   API Routes    โ”‚โ”€โ”€โ”€โ”€โ”‚   PostgreSQL    โ”‚
โ”‚                 โ”‚    โ”‚                 โ”‚    โ”‚   (Prisma)      โ”‚
โ”‚ โ€ข Pages         โ”‚    โ”‚ โ€ข REST APIs     โ”‚    โ”‚                 โ”‚
โ”‚ โ€ข Components    โ”‚    โ”‚ โ€ข Auth          โ”‚    โ”‚ โ€ข Users         โ”‚
โ”‚ โ€ข State Mgmt    โ”‚    โ”‚ โ€ข Realtime      โ”‚    โ”‚ โ€ข Conversations โ”‚
โ”‚                 โ”‚    โ”‚ โ€ข File Upload   โ”‚    โ”‚ โ€ข Services      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                       โ”‚                       โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   Supabase      โ”‚
                    โ”‚   Realtime      โ”‚
                    โ”‚                 โ”‚
                    โ”‚ โ€ข Chat Messages โ”‚
                    โ”‚ โ€ข Notifications โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Components

  • ResidentCard: Reusable component for displaying resident information
  • ServiceCard: Component for service listings with provider details
  • UnifiedResidentCard: Combined component with chat functionality
  • DirectoryGrid: Main directory browsing interface
  • ChatModal: Real-time messaging interface
  • AdminDashboard: Administrative controls and analytics

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL database (local or Supabase)
  • Supabase account for real-time features

Installation

  1. Clone the repository

    git clone https://github.com/your-org/soralia-village.git
    cd soralia-village
  2. Install dependencies

    npm install
  3. Environment setup

    cp .env.example .env.local

    Configure your environment variables:

    # Database
    DATABASE_URL="postgresql://user:password@localhost:5432/soralia_village"
    
    # Authentication
    NEXT_PUBLIC_BETTER_AUTH_URL="http://localhost:3000"
    BETTER_AUTH_SECRET="your-secret-key"
    
    # Real-time (Supabase)
    NEXT_PUBLIC_SUPABASE_URL="your-supabase-url"
    NEXT_PUBLIC_SUPABASE_ANON_KEY="your-supabase-anon-key"
  4. Database setup

    # Push schema to database
    npm run db:push
    
    # Seed with sample data
    npm run db:seed
  5. Start development server

    npm run dev
  6. Open your browser

    http://localhost:3000
    

๐Ÿ“– Usage

For Residents

  1. Register/Login: Create your account or sign in
  2. Complete Profile: Add your contact information and interests
  3. Browse Directory: Discover other residents and community services
  4. Connect: Start conversations with other community members
  5. Access Services: Browse and book community services

For Service Providers

  1. Create Listings: Add your services to the marketplace
  2. Manage Availability: Set your service hours and areas
  3. Respond to Inquiries: Handle booking requests from residents
  4. Build Reputation: Earn reviews and ratings

For Property Owners

  1. Access Premium Features: Upgrade to Premium Seat
  2. Manage Portfolio: Track multiple properties
  3. Connect with Agents: Work with verified real estate professionals
  4. List Properties: Create property listings for sale/rent

For Administrators

  1. Access Admin Panel: Use admin dashboard for oversight
  2. Moderate Content: Review and approve service listings
  3. Manage Users: Handle resident accounts and permissions
  4. View Analytics: Monitor platform usage and performance

๐Ÿ”ง Development

Available Scripts

# Development
npm run dev              # Start development server
npm run build            # Build for production
npm run start            # Start production server

# Database
npm run db:push          # Push schema changes to database
npm run db:seed          # Seed database with sample data
npm run db:studio        # Open Prisma Studio

# Testing
npm test                 # Run tests in watch mode
npm run test:run         # Run tests once
npm run test:coverage    # Run tests with coverage

# Code Quality
npm run lint             # Run ESLint
npm run typecheck        # Run TypeScript type checking
npm run format           # Format code with Prettier

Project Structure

soralia-village/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/                    # Next.js app router
โ”‚   โ”‚   โ”œโ”€โ”€ api/               # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ auth/              # Authentication pages
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard/         # User dashboard
โ”‚   โ”‚   โ”œโ”€โ”€ directory/         # Community directory
โ”‚   โ”‚   โ””โ”€โ”€ messages/          # Messaging interface
โ”‚   โ”œโ”€โ”€ components/            # React components
โ”‚   โ”‚   โ”œโ”€โ”€ shared/            # Reusable components
โ”‚   โ”‚   โ”œโ”€โ”€ directory/         # Directory-specific components
โ”‚   โ”‚   โ”œโ”€โ”€ services/          # Service marketplace components
โ”‚   โ”‚   โ””โ”€โ”€ chat/              # Chat components
โ”‚   โ””โ”€โ”€ lib/                   # Utilities and configurations
โ”‚       โ”œโ”€โ”€ auth.ts            # Authentication setup
โ”‚       โ”œโ”€โ”€ prisma.ts          # Database client
โ”‚       โ””โ”€โ”€ schemas.ts         # Validation schemas
โ”œโ”€โ”€ prisma/
โ”‚   โ”œโ”€โ”€ schema.prisma          # Database schema
โ”‚   โ””โ”€โ”€ seed.ts               # Database seeding
โ”œโ”€โ”€ docs/                      # Documentation
โ”œโ”€โ”€ public/                    # Static assets
โ””โ”€โ”€ package.json

๐Ÿงช Testing

The project includes comprehensive testing coverage:

Unit Tests

npm run test              # Run tests in watch mode
npm run test:run          # Run all tests once
npm run test:coverage     # Generate coverage report

End-to-End Tests

npx playwright test       # Run E2E tests
npx playwright show-report # View test results

Testing Documentation

See TESTING_METHODS.md for comprehensive testing strategies.

๐Ÿ“š API Documentation

Authentication Endpoints

POST /api/auth/sign-in     # User login
POST /api/auth/sign-up     # User registration
POST /api/auth/sign-out    # User logout
GET  /api/auth/session     # Get current session

User Management

GET    /api/users           # List users (with filtering)
GET    /api/users/[id]      # Get user details
PUT    /api/users/[id]      # Update user profile
DELETE /api/users/[id]      # Delete user (admin only)

Community Services

GET    /api/community-services/listings           # Browse services
POST   /api/community-services/listings           # Create service listing
GET    /api/community-services/listings/[id]      # Get service details
PUT    /api/community-services/listings/[id]      # Update listing
DELETE /api/community-services/listings/[id]      # Delete listing
POST   /api/community-services/listings/[id]/publish # Publish/unpublish

GET    /api/community-services/reviews/[listingId] # Get reviews
POST   /api/community-services/reviews/[listingId] # Add review
POST   /api/community-services/inquiries           # Create service inquiry

Messaging

GET    /api/messages?conversationId=<id>         # Get messages
POST   /api/messages                            # Send message
GET    /api/messages/unread                      # Get unread counts
POST   /api/messages/mark-read                   # Mark as read

POST   /api/conversations/find                   # Find/create conversation
GET    /api/conversations/[id]                   # Get conversation details

Admin Endpoints

GET    /api/admin/users                          # List all users
GET    /api/admin/analytics                      # Platform analytics
POST   /api/admin/services/moderate/[id]         # Moderate content

๐Ÿค Contributing

We welcome contributions to the Soralia Village platform!

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Make your changes following our coding standards
  4. Run tests: npm run test:run
  5. Commit your changes: git commit -m "Add your feature"
  6. Push to your fork: git push origin feature/your-feature-name
  7. Create a Pull Request

Code Standards

  • TypeScript: Strict type checking enabled
  • ESLint: Airbnb configuration with TypeScript support
  • Prettier: Consistent code formatting
  • Testing: Minimum 80% test coverage required

Commit Message Format

type(scope): description

[optional body]

[optional footer]

Types: feat, fix, docs, style, refactor, test, chore

๐Ÿ“„ License

This project is proprietary software owned by Netbones Solutions Pty Ltd. All rights reserved.

See SaaS_License_Agreement_Soralia_v4.md for detailed licensing terms.

๐Ÿ“ž Support & Contact

Community Support

  • Documentation: docs/ directory
  • Issues: GitHub Issues for bug reports and feature requests
  • Discussions: GitHub Discussions for questions and community support

Technical Support

  • Email: support@soralia.org
  • Admin Portal: Available for authorized HOA administrators
  • Emergency: For critical system issues

Development Team

๐Ÿ—บ๏ธ Roadmap

Current Version (v1.0.0)

  • โœ… Resident directory with advanced filtering
  • โœ… Community services marketplace
  • โœ… Real estate agent marketplace
  • โœ… Real-time messaging system
  • โœ… Admin moderation tools

Upcoming Features

  • ๐Ÿ“ฑ Mobile App: Native iOS/Android applications
  • ๐Ÿ“Š Advanced Analytics: Detailed usage and engagement metrics
  • ๐ŸŽฏ Push Notifications: Browser and mobile push notifications
  • ๐Ÿ“… Event Management: Community event planning and RSVPs
  • ๐Ÿ’ฐ Payment Integration: In-app payments for premium services
  • ๐ŸŒ Multi-language: Additional language support
  • โ™ฟ Enhanced Accessibility: WCAG 2.1 AAA compliance

Long-term Vision

  • ๐Ÿข Multi-Community Support: Platform for multiple communities
  • ๐Ÿค– AI Features: Smart recommendations and automated moderation
  • ๐Ÿ“ˆ Advanced Reporting: Comprehensive business intelligence
  • ๐Ÿ”— Third-party Integrations: External service provider connections
  • ๐ŸŽฎ Gamification: Community engagement incentives

Built with โค๏ธ for the Soralia Village community

Empowering communities through technology since 2024

Releases

Packages

Contributors

Languages