A comprehensive real estate management system with customer relationship management, property listings, and process tracking capabilities.
- π― Project Overview
- β¨ Key Features
- ποΈ Architecture
- π Quick Start
- π Project Structure
- π οΈ Technology Stack
- π§ Development
- π± Mobile Support
- π Security
- π Documentation
- π€ Contributing
Terasu Estate is a modern, full-stack real estate management platform designed for Japanese real estate companies. The system provides comprehensive tools for property management, customer relationship management, and process tracking with a focus on mobile-first design and real-time data synchronization.
- π± Mobile-First Design: Fully responsive interface optimized for all devices
- π Real-time Synchronization: Instant updates across all connected clients using Firebase
- π Process Management: Interactive checklist system for customer journey tracking
- ποΈ Modular Architecture: Scalable microservices architecture with React frontend and Strapi CMS
- π Bilingual Support: Japanese-English interface for international operations
- π― Customer-Centric: Designed specifically for Japanese real estate workflows
- π Property Listings: Comprehensive property database with search and filtering
- πΌοΈ Image Galleries: Interactive property photo galleries with navigation
- π Location Mapping: Integration with mapping services for property locations
- π° Price Management: Dynamic pricing with market analysis tools
- π Property Details: Detailed specifications, floor plans, and amenities
- π€ Customer Profiles: Detailed customer information and preferences
- π Process Tracking: Visual progress tracking through purchase journey
- π Rewards System: Points-based incentive system for customer engagement
- π Communication Log: Complete communication history with customers
- π Appointment Scheduling: Integrated calendar for property viewings
- β Progress Tracking: Visual indicators for each stage of the buying process
- π― Point Accumulation: Gamified experience with rewards for completed tasks
- π Milestone Rewards: Gift cards and incentives for reaching checkpoints
- π Analytics Dashboard: Real-time insights into customer progress
- π Automated Workflows: Streamlined process management
- π Educational Content: Comprehensive guides for home buying process
- β Dynamic FAQ: Categorized frequently asked questions with search
- π Resource Library: Downloadable guides and documentation
- π₯ Multimedia Content: Video tutorials and virtual property tours
- π Smart Search: AI-powered content discovery
- π¨βπΌ User Management: Role-based access control for staff members
- π Analytics Dashboard: Real-time business metrics and KPIs
- π§ Content Management: Easy-to-use CMS for updating property information
- π Performance Tracking: Monitor customer engagement and conversion rates
- π οΈ System Configuration: Flexible settings for business rules
The system follows a modern microservices architecture:
- React Frontend: TypeScript-based UI with mobile-first design
- Strapi CMS: Headless CMS handling API requests and content management
- Firebase Firestore: Real-time database providing instant synchronization
- Webhook System: Express.js services for external integrations
- Cloud Infrastructure: Railway and Netlify hosting with CI/CD pipelines
- Node.js 18+ or 22.x.x
- npm 6.0.0+
- Firebase project setup
- Git for version control
Hereβs a glimpse of the ESTATE webiste in action:
-
Clone the repository
git clone https://github.com/2003Rk/STRAPI.git cd STRAPI -
Setup Firebase Configuration
# Run security setup script ./setup-security.sh # Copy your Firebase service account files cp firebase-service-account.json.template firebase-service-account.json cp strapi-backend/config/firebase-service-account.json.template strapi-backend/config/firebase-service-account.json
-
Install Backend Dependencies
cd strapi-backend npm install -
Install Frontend Dependencies
cd ../ESTATE/ESTATE npm install -
Configure Environment Variables
# Backend (.env) cd ../../strapi-backend cp .env.example .env # Edit .env with your configuration # Frontend (.env.local) cd ../ESTATE/ESTATE # Create .env.local with your Firebase config
-
Start Development Servers
# Terminal 1: Start Strapi Backend cd strapi-backend npm run develop # Terminal 2: Start React Frontend cd ESTATE/ESTATE npm run dev
-
Initialize Checklist System
# Initialize default checklist items curl -X POST http://localhost:1337/api/checklist-items/initialize
- Frontend: http://localhost:5173
- Admin Panel: http://localhost:1337/admin
- API Documentation: http://localhost:1337/documentation
STRAPI/
βββ π± ESTATE/ESTATE/ # React TypeScript Frontend
β βββ src/
β β βββ admin_side/ # Admin panel components
β β βββ components/ # Reusable UI components
β β βββ hooks/ # Custom React hooks
β β βββ types/ # TypeScript type definitions
β β βββ App.tsx # Main application component
β β βββ firebase.ts # Firebase configuration
β β βββ *.tsx # Page components
β βββ package.json # Frontend dependencies
β
βββ π§ strapi-backend/ # Strapi CMS Backend
β βββ src/
β β βββ api/ # API endpoints
β β βββ extensions/ # Strapi extensions
β β βββ middlewares/ # Custom middleware
β βββ config/ # Configuration files
β
βββ π Documentation/ # Project documentation
βββ π Security/ # Security configuration
βββ π Deployment/ # Deployment files
- βοΈ React 19.1.1 - Modern UI library
- π· TypeScript 5.9.2 - Type-safe development
- β‘ Vite 7.1.2 - Fast build tool
- π¨ Tailwind CSS 4.1.12 - Utility-first CSS framework
- π― Lucide React 0.539.0 - Icon library
- π£οΈ React Router DOM 7.8.0 - Client-side routing
- π¦ Strapi 5.22.0 - Headless CMS
- π₯ Firebase 12.1.0 - Real-time database
- ποΈ Better SQLite 11.3.0 - Development database
- π’ Node.js 18+ - JavaScript runtime
- π Railway - Backend hosting
- π Netlify - Frontend hosting
- π₯ Firebase Firestore - Real-time database
- π Firebase Auth - Authentication
- π Firebase Storage - File storage
- Strapi API handles CRUD operations and business logic
- Firebase Middleware automatically syncs data to Firestore
- React Frontend listens for real-time updates via Firebase
- Webhook System handles external integrations and notifications
- Users interact with the mobile-optimized React interface
- Admin staff manage content through Strapi CMS
- All changes sync instantly across all connected devices
- Customer progress is tracked through interactive checklists
-
Development Environment (
.env)NODE_ENV=development DATABASE_CLIENT=sqlite DATABASE_FILENAME=.tmp/data.db FIREBASE_PROJECT_ID=your-project-id
-
Frontend Environment (
.env.local)VITE_FIREBASE_API_KEY=your-api-key VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your-project-id VITE_STRAPI_API_URL=http://localhost:1337
cd strapi-backend
npm run develop # Development with auto-reload
npm run build # Production build
npm run start # Start production servercd ESTATE/ESTATE
npm run dev # Development server
npm run build # Production build
npm run preview # Preview production build- π Firebase Authentication with multi-factor support
- π Role-Based Access Control with granular permissions
- π« Input Validation and data sanitization
- π HTTPS Enforcement for secure data transmission
- π Audit Logging for complete activity tracking
# Run security setup script
./setup-security.sh
# Never commit these files:
firebase-service-account.json
.env
.env.production- π API Documentation - Complete API reference
- π Deployment Guide - Production deployment
- π₯ User Manual - End-user instructions
- π Security Guide - Security best practices
- π Checklist Setup - Checklist system guide
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature) - π» Make your changes with proper TypeScript typing
- β Test your changes thoroughly
- π Commit your changes (
git commit -m 'Add amazing feature') - π Push to the branch (
git push origin feature/amazing-feature) - π Open a Pull Request
- β Use TypeScript for all new code
- β Follow existing code style and patterns
- β Write comprehensive tests for new features
- β Update documentation for API changes
- β Ensure mobile responsiveness
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π Documentation: Project Wiki
β If this project helped you, please consider giving it a star!
Built with β€οΈ for the real estate industry
Β© 2025 Terasu Estate Management System - All Rights Reserved
- Firebase errors: Make sure your Firebase config is correct and Firestore is enabled
- Strapi connection errors: Ensure Strapi is running on port 1337
- Real-time updates not working: Check Firebase console for any security rules issues
/
βββ strapi-backend/
β βββ config/
β β βββ firebase.js # Firebase Admin SDK config
β β βββ firebase-service-account.json # Your Firebase service account key
β βββ src/api/post/controllers/
β βββ post.ts # Modified controller with Firebase sync
βββ react-frontend/
βββ src/
β βββ firebase.js # Firebase client SDK config
β βββ components/
β βββ Posts.js # Main Posts component
β βββ Posts.css # Styles
βββ package.json