A comprehensive Lead Management System built with React and Firebase, designed to help businesses manage their leads, branches, and customer relationships effectively.
- Create, edit, and delete leads
- Track lead status (Fresh, Demo Scheduled, Details Shared, Demo Done, Won, Lost)
- Advanced search and filtering
- Import/Export leads via CSV
- Real-time lead tracking
- Follow-up reminders
- Multi-branch support
- Branch subscription management
- Active/Inactive branch tracking
- Expiration alerts
- Branch performance analytics
- Role-based access control (Super Admin, Branch Manager, Subuser)
- User authentication with Firebase
- Session management
- Password protection
- User activity tracking
- Real-time statistics
- Conversion rate tracking
- Lead distribution charts
- Performance metrics
- Interactive data visualization
- Email notifications
- Responsive design
- Material-UI components
- Toast notifications
- Error boundaries
- Protected routes
- Session timeout management
- Frontend: React 18
- UI Framework: Material-UI (MUI)
- Backend: Firebase
- Authentication
- Firestore Database
- Cloud Storage
- Routing: React Router v6
- State Management: React Context API
- Charts: Recharts
- Email: EmailJS
- CSV Processing: PapaParse
- Notifications: React Toastify
Before you begin, ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- A Firebase account and project
-
Clone the repository
git clone <repository-url> cd Borezy
-
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:cp .env.example .env
Update the
.envfile with your Firebase configuration:REACT_APP_FIREBASE_API_KEY=your_api_key_here REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain_here REACT_APP_FIREBASE_PROJECT_ID=your_project_id_here REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket_here REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id_here REACT_APP_FIREBASE_APP_ID=your_app_id_here REACT_APP_FIREBASE_MEASUREMENT_ID=your_measurement_id_here # Optional: Email services REACT_APP_EMAILJS_SERVICE_ID=your_emailjs_service_id_here REACT_APP_EMAILJS_TEMPLATE_ID=your_emailjs_template_id_here REACT_APP_EMAILJS_PUBLIC_KEY=your_emailjs_public_key_here
-
Set up Firebase
a. Go to Firebase Console
b. Create a new project or select an existing one
c. Enable Authentication (Email/Password)
d. Create a Firestore database
e. Copy your Firebase config to the
.envfile -
Start the development server
npm start
The application will open at http://localhost:3000
- Use your registered email and password
- Super Admins have full access to all features
- Branch Managers can manage their branch
- Subusers have limited access based on permissions
- Navigate to the Leads section
- Click "Add Lead" to create a new lead
- Fill in the required information
- Track lead status and follow-ups
- Update lead status as they progress through the sales funnel
- Navigate to Branches
- Click "Add Branch" to create a new branch
- Set subscription dates and user limits
- Monitor branch performance
- Access user management from the sidebar
- Add new users to branches
- Edit user permissions
- Monitor user activity
Borezy/
βββ public/
β βββ index.html
β βββ ...
βββ src/
β βββ assets/ # Images and static assets
β βββ components/ # React components
β β βββ Admin/ # Admin dashboard components
β β βββ Auth/ # Authentication components
β β βββ Branch/ # Branch management
β β βββ Customize/ # Customization options
β β βββ Dashboard/ # Dashboard & analytics
β β βββ Leads/ # Lead management
β β βββ Log/ # Activity logs
β β βββ Product/ # Product management
β β βββ Profile/ # User profile
β β βββ UserDashboard/# User dashboard
β βββ utils/ # Utility functions
β βββ App.js # Main app component
β βββ firebaseConfig.js # Firebase configuration
β βββ index.js # Entry point
βββ .env # Environment variables (DO NOT COMMIT)
βββ .env.example # Example environment file
βββ package.json
- Environment Variables: Sensitive data stored in
.env(never commit this file) - Protected Routes: Role-based access control
- Session Management: Automatic session timeout
- Password Encryption: Firebase handles password security
- Input Validation: Client-side validation before submission
npm run buildThis creates an optimized production build in the build/ folder.
-
Install Firebase CLI:
npm install -g firebase-tools
-
Initialize Firebase:
firebase init hosting
-
Deploy:
firebase deploy
The build folder can be deployed to any static hosting service:
- Vercel
- Netlify
- AWS S3 + CloudFront
- Azure Static Web Apps
# Run tests
npm test
# Build production bundle
npm run build
# Eject from Create React App (ONE-WAY operation)
npm run ejectsuperadmins- Super administrator accountsbranches- Branch information and subscriptionssubusers- Subuser accountsleads- Lead recordsproducts- Product catalogbookings- Appointment bookings
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is proprietary software. All rights reserved.
For support, email your-admin@example.com or contact your system administrator.
- React team for the amazing framework
- Firebase for backend services
- Material-UI for beautiful components
- All contributors to this project
For questions or support, please contact your system administrator.
Built with β€οΈ using React and Firebase