Skip to content

2003Rk/STRAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏑 γƒ†γƒ©γ‚Ήγ‚¨γ‚Ήγƒ†γƒΌγƒˆ | Terasu Estate Management System

Estate Management React TypeScript Strapi Firebase

A comprehensive real estate management system with customer relationship management, property listings, and process tracking capabilities.

πŸ“‘ Table of Contents


🎯 Project Overview

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.

🌟 What Makes It Special

  • πŸ“± 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

✨ Key Features

🏠 Property Management

  • πŸ“Š 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 Relationship Management

  • πŸ‘€ 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

πŸ“‹ Interactive Checklist System

  • βœ… 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

πŸŽ“ Learning & FAQ System

  • πŸ“š 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

πŸ” Admin Panel

  • πŸ‘¨β€πŸ’Ό 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

πŸ›οΈ Architecture

The system follows a modern microservices architecture:

  1. React Frontend: TypeScript-based UI with mobile-first design
  2. Strapi CMS: Headless CMS handling API requests and content management
  3. Firebase Firestore: Real-time database providing instant synchronization
  4. Webhook System: Express.js services for external integrations
  5. Cloud Infrastructure: Railway and Netlify hosting with CI/CD pipelines

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Node.js 18+ or 22.x.x
  • npm 6.0.0+
  • Firebase project setup
  • Git for version control

Screenshots πŸ“Έ

Here’s a glimpse of the ESTATE webiste in action:

⚑ Installation

  1. Clone the repository

    git clone https://github.com/2003Rk/STRAPI.git
    cd STRAPI
  2. 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
  3. Install Backend Dependencies

    cd strapi-backend
    npm install
  4. Install Frontend Dependencies

    cd ../ESTATE/ESTATE
    npm install
  5. 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
  6. 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
  7. Initialize Checklist System

    # Initialize default checklist items
    curl -X POST http://localhost:1337/api/checklist-items/initialize

🌐 Access the Application

πŸ“ Project Structure

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

πŸ› οΈ Technology Stack

🎨 Frontend

  • βš›οΈ 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

πŸ”§ Backend

  • πŸ“¦ 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

☁️ Infrastructure

  • πŸš„ Railway - Backend hosting
  • 🌐 Netlify - Frontend hosting
  • πŸ”₯ Firebase Firestore - Real-time database
  • πŸ” Firebase Auth - Authentication
  • πŸ“ Firebase Storage - File storage

How It Works

πŸ”„ Real-time Synchronization

  1. Strapi API handles CRUD operations and business logic
  2. Firebase Middleware automatically syncs data to Firestore
  3. React Frontend listens for real-time updates via Firebase
  4. Webhook System handles external integrations and notifications

πŸ“± User Experience Flow

  1. Users interact with the mobile-optimized React interface
  2. Admin staff manage content through Strapi CMS
  3. All changes sync instantly across all connected devices
  4. Customer progress is tracked through interactive checklists

πŸ”§ Development

🌿 Environment Setup

  1. Development Environment (.env)

    NODE_ENV=development
    DATABASE_CLIENT=sqlite
    DATABASE_FILENAME=.tmp/data.db
    FIREBASE_PROJECT_ID=your-project-id
  2. 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

πŸ› οΈ Available Scripts

Backend (Strapi)

cd strapi-backend
npm run develop    # Development with auto-reload
npm run build      # Production build
npm run start      # Start production server

Frontend (React)

cd ESTATE/ESTATE
npm run dev        # Development server
npm run build      # Production build
npm run preview    # Preview production build

πŸ”’ Security

πŸ›‘οΈ Security Features

  • πŸ” 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

🚨 Security Setup

# Run security setup script
./setup-security.sh

# Never commit these files:
firebase-service-account.json
.env
.env.production

πŸ“š Documentation

πŸ“– Available Documentation

🀝 Contributing

🎯 Development Workflow

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’» Make your changes with proper TypeScript typing
  4. βœ… Test your changes thoroughly
  5. πŸ“ Commit your changes (git commit -m 'Add amazing feature')
  6. πŸš€ Push to the branch (git push origin feature/amazing-feature)
  7. πŸ”„ Open a Pull Request

πŸ“‹ Development Guidelines

  • βœ… 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

πŸ“ž Support & Contact

πŸ› οΈ Technical Support


⭐ 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

Troubleshooting

  1. Firebase errors: Make sure your Firebase config is correct and Firestore is enabled
  2. Strapi connection errors: Ensure Strapi is running on port 1337
  3. Real-time updates not working: Check Firebase console for any security rules issues

Project Structure

/
β”œβ”€β”€ 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published