A comprehensive business growth and valuation calculator built with Next.js 13+.
- 📊 Growth Projections
- 💰 Valuation Metrics
- 📈 Analytics Dashboard
- 👥 Client Management
- ⚙️ Customizable Settings
- 🔒 Secure Authentication
- 🌙 Dark Mode Support
- Framework: Next.js 13+ (App Router)
- Styling: Tailwind CSS
- UI Components: Radix UI
- Authentication: Firebase Auth
- Database: Firestore
- State Management: Custom Hooks
- Forms: React Hook Form
- Charts: Recharts
├── app/ # Next.js 13 App Router
│ ├── analytics/ # Analytics pages
│ ├── clients/ # Client management
│ ├── dashboard/ # Main dashboard
│ ├── projections/ # Growth projections
│ ├── settings/ # User settings
│ └── valuation/ # Valuation tools
├── components/
│ ├── shared/ # Reusable UI components
│ └── features/ # Feature-specific components
│ ├── analytics/ # Analytics components
│ └── contact/ # Contact form components
├── lib/
│ ├── firebase/ # Firebase configuration
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Utility functions
│ └── types/ # TypeScript types
└── public/ # Static assets
-
Clone the repository: ```bash git clone https://github.com/yourusername/growth-calculator.git ```
-
Install dependencies: ```bash npm install ```
-
Set up environment variables: ```bash cp .env.example .env.local ```
-
Start the development server: ```bash npm run dev ```
Required environment variables:
``` NEXT_PUBLIC_FIREBASE_API_KEY= NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN= NEXT_PUBLIC_FIREBASE_PROJECT_ID= NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET= NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID= NEXT_PUBLIC_FIREBASE_APP_ID= FIREBASE_ADMIN_PROJECT_ID= FIREBASE_ADMIN_CLIENT_EMAIL= FIREBASE_ADMIN_PRIVATE_KEY= ```
Located in components/shared/
:
Button
: Customizable button component with variantsCard
: Container component with consistent stylingInput
: Form input component with validationTable
: Data table component with sortingToast
: Notification systemToaster
: Toast notification manager
Located in components/features/
:
MetricsGrid
: Display key metrics in a grid layoutTrendChart
: Visualize trends over timeDataTable
: Interactive data table with filteringFilters
: Data filtering controls
ContactForm
: Contact form with validation
Authentication methods available:
- Email/Password
- Google Sign-In
- Magic Link (Passwordless)
users
: User profiles and settingsclients
: Client informationprojections
: Growth projection datavaluations
: Valuation calculations
Located in lib/hooks/
:
useAuth
: Authentication state managementuseApiKeys
: API key managementuseChartConfig
: Chart configurationuseScenariosStore
: Scenario management
Located in lib/utils/
:
calculations.ts
: Financial calculationsformat.ts
: Data formatting utilities
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - see LICENSE file for details