Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 SG AGI Lab - Production Firebase Implementation

Status: ✅ PRODUCTION READY WITH FIREBASE BACKEND

A cutting-edge Next.js 14 application showcasing AGI technology with a fully implemented Firebase backend for real-time lead management and admin analytics.


🏗️ Architecture Overview

Frontend Stack

  • Next.js 14 (App Router)
  • TypeScript for type safety
  • TailwindCSS for styling
  • shadcn/ui for components
  • React Hook Form + Zod for form validation

Backend Stack

  • Firebase Authentication for secure user management
  • Cloud Firestore for real-time database operations
  • Firebase Security Rules for data protection
  • Notification System for email/SMS alerts

🔥 Firebase Implementation

Database Collections

  • leads - Customer and investor lead data
  • admins - Admin user management
  • settings - Application configuration
  • notifications - Notification queue

Security Model

  • Public Access: Lead/investor form submissions
  • Admin Access: Authenticated users with email verification
  • Domain Restriction: Admin access restricted to verified domains

Authentication Flow

  1. Firebase Auth with email/password
  2. Admin verification via admins collection
  3. Session management with Firebase tokens
  4. Role-based permissions system

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Firebase project setup
  • Admin Gmail account (for initial access)

Installation

  1. Clone and install dependencies
git clone <repository-url>
cd landing-page-template-2
npm install
  1. Environment Configuration
cp .env.example .env.local

Update .env.local with your Firebase config:

NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=sgagilab.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=sgagilab
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=sgagilab.firebasestorage.app
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
  1. Firebase Setup
# Deploy Firestore security rules
firebase deploy --only firestore:rules

# Create initial admin user (run once)
# Use the createAdminUser function in lib/auth.ts
  1. Run Development Server
npm run dev

Open http://localhost:3000 to view the application.


🔐 Admin Access

Initial Setup

  1. Create an admin user using the createAdminUser() function
  2. Access the management portal at /management
  3. Login with admin credentials
  4. Manage leads and view analytics

Admin Features

  • Lead Management: View, filter, and update lead status
  • Real-time Data: Live Firebase integration
  • CSV Export: Download lead data for analysis
  • Statistics Dashboard: Track leads, investors, and conversion metrics

📊 Database Schema

Lead Document Structure

interface Lead {
  id?: string;
  name: string;
  email: string;
  company: string;
  role: string;
  phone?: string;
  interestedProducts: string[];
  useCase: string;
  timeline?: string;
  budget?: string;
  isInvestor: boolean;
  submittedAt: Date;
  status: 'new' | 'contacted' | 'qualified' | 'closed';
  assignedTo?: string;
  notes?: string;
  lastContacted?: Date;
}

Admin User Structure

interface AdminUser {
  uid: string;
  email: string;
  role: 'admin';
  permissions: string[];
}

🔒 Security Implementation

Firestore Security Rules

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    // Public lead creation
    match /leads/{leadId} {
      allow create: if true;
      allow read, update, delete: if request.auth != null 
                                  && request.auth.token.email_verified == true
                                  && request.auth.token.email.matches('.*@gmail.com');
    }
    
    // Admin-only collections
    match /admins/{userId} {
      allow read, write: if request.auth != null 
                         && request.auth.token.email_verified == true;
    }
  }
}

Authentication Security

  • Email Verification: Required for admin access
  • Domain Restriction: Admin access limited to specific domains
  • Session Management: Firebase Auth tokens with proper expiration
  • Role-Based Access: Permission system for different admin roles

📱 Features

Public Features

  • Landing Page: Modern, responsive design
  • Demo Request Form: Lead capture with validation
  • Product Showcase: Interactive product demonstrations
  • Contact Forms: Customer and investor inquiry forms

Admin Features

  • Management Dashboard: Real-time lead analytics
  • Lead Management: Status updates and notes
  • Data Export: CSV download functionality
  • User Authentication: Secure admin login system

Technical Features

  • Real-time Updates: Live Firebase integration
  • Form Validation: Comprehensive Zod schemas
  • Error Handling: Graceful error management
  • Responsive Design: Mobile-first approach

🔧 Configuration

Firebase Project Setup

  1. Create Firebase project at Firebase Console
  2. Enable Authentication (Email/Password)
  3. Create Firestore database
  4. Configure security rules
  5. Set up web app configuration

Environment Variables

# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id

# Admin Configuration
ADMIN_EMAIL=admin@yourcompany.com
ADMIN_PASSWORD=your_secure_password

# Optional: Notification Services
EMAIL_SERVICE_PROVIDER=sendgrid
SENDGRID_API_KEY=your_sendgrid_api_key
TWILIO_ACCOUNT_SID=your_twilio_account_sid
TWILIO_AUTH_TOKEN=your_twilio_auth_token

📈 Production Deployment

Vercel Deployment (Recommended)

  1. Connect repository to Vercel
  2. Configure environment variables
  3. Deploy automatically on push to main branch

Manual Deployment

# Build for production
npm run build

# Start production server
npm start

Firebase Deployment

# Deploy Firestore rules
firebase deploy --only firestore:rules

# Deploy all Firebase resources
firebase deploy

🔍 Monitoring & Analytics

Firebase Analytics

  • User engagement tracking
  • Conversion funnel analysis
  • Performance monitoring

Error Tracking

  • Firebase Crashlytics integration
  • Client-side error logging
  • Performance metrics

Security Monitoring

  • Authentication event logging
  • Admin activity tracking
  • Data access auditing

🛠️ Development

Project Structure

landing-page-template-2/
├── app/                    # Next.js 14 App Router
│   ├── management/         # Admin dashboard
│   └── page.tsx           # Landing page
├── components/            # React components
│   ├── ui/               # shadcn/ui components
│   ├── Header/           # Navigation components
│   └── ...               # Feature components
├── lib/                  # Core libraries
│   ├── firebase.ts       # Firebase configuration
│   ├── auth.ts           # Authentication logic
│   ├── database.ts       # Database operations
│   └── notifications.ts  # Notification system
└── public/               # Static assets

Key Files


🧪 Testing

Development Testing

# Create sample data
import { testUtils } from '@/lib/database'

// Create sample leads
await testUtils.createSampleLeads()

// Clear all leads (testing only)
await testUtils.clearAllLeads()

Admin User Creation

import { createAdminUser } from '@/lib/auth'

// Create initial admin
await createAdminUser('user-uid', 'admin@yourcompany.com', ['read', 'write', 'admin'])

📚 Documentation


🤝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

📄 License

This project is proprietary and confidential to SG AGI Lab.


🆘 Support

For technical support or questions:

  • Documentation: Check this README and audit reports
  • Firebase Console: Firebase Project Dashboard
  • Issues: Create GitHub issue for bugs or feature requests

🎯 Production Checklist

Pre-Deployment

  • Firebase project configured
  • Environment variables set
  • Admin users created
  • Security rules deployed
  • Forms tested end-to-end
  • Authentication flow verified

Post-Deployment

  • Monitor Firebase Analytics
  • Set up error tracking
  • Configure backup strategy
  • Test admin functionality
  • Verify notification systems

Status: ✅ PRODUCTION READY
Last Updated: November 14, 2025
Version: 1.0.0


Built with ❤️ by the SG AGI Lab team

About

Official repository for S&G AI Lab — developers of FusionCell, the AI-driven battery digital twin framework. Includes the Next.js 14 landing page, Firebase integration, AGI research modules, and product suite components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages