This is an MVP for a software designed to improve door-to-door (D2D) lead generation for solar sales teams. It helps Canvassers collect data, get real-time support on the field, and keep track of their performances. It also helps Team Leaders in qualifying prospects, and Managers to keep track of the team's performances.
- Data collection from door-to-door interactions
- Field support with maps, optimized canvassing routes, personal performance tracking, addresses worth returning
- Prospect qualification tools like prospect personas, charts to visualize data distribution, buckets to collect initiatives
- Analytics dashboard for team's performance tracking
- Role-based access control (Canvasser, Team Leader, Manager)
-
Clone the repository:
git clone https://github.com/yourusername/solar-leads-mvp.git
-
Navigate to the project directory:
cd solar-leads-mvp
-
Create a virtual environment:
python -m venv venv-solar-leads
-
Activate the virtual environment:
- On Windows:
venv-solar-leads\Scripts\activate
- On macOS and Linux:
source venv-solar-leads/bin/activate
- On Windows:
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Copy the
.env.example
file to.env
- Fill in the required environment variables in the
.env
file
- Copy the
-
Set up the config.js file:
- Copy
app/static/config.js.example
toapp/static/config.js
- Replace
__GEOAPIFY_API_KEY__
with your actual Geoapify API key
- Copy
-
Activate the virtual environment (if not already activated)
-
Run the server:
python app/main.py
-
Open a web browser and navigate to
http://localhost:5000
-
Select a role (Canvasser, Team Leader, or Manager) to access different features of the application
/solar-leads-mvp/
│
├── app/ # Main application folder
│ ├── static/ # Static files (CSS, JS, images)
│ │ ├── images/ # Image files
│ │ ├── config.js # Configuration file for API keys
│ │ ├── maps.js # JavaScript for map functionality
│ │ ├── script.js # Main JavaScript file
│ │ └── style.css # CSS styles
│ ├── templates/ # HTML templates
│ │ ├── analytics.html # Analytics page template
│ │ ├── data_collection.html # Data collection page template
│ │ ├── field_support.html # Field support page template
│ │ ├── login.html # Login page template
│ │ ├── prospect_qualification.html # Prospect qualification page template
│ │ └── role_selection.html # Role selection page template
│ ├── init.py # Initializes the Python package
│ ├── data_processing.py # Data processing functions
│ ├── database.py # Database operations
│ ├── main.py # Main entry point for the Flask application
│ ├── ML_model.py # Machine learning model functions
│ ├── test_ML_model.py # Tests for the ML model
│ └── train_ML_model.py # Run it to train the ML model
│
├── venv-solar-leads/ # Virtual environment (not tracked in git)
├── .env # Environment variables (not tracked in git)
├── .gitignore # Git ignore file
├── build.js # Build script for frontend assets
├── Detailed Documentation.md # Detailed project documentation
├── README.md # Project documentation (this file)
├── requirements.txt # Python dependencies
└── solar_lead_predictor.joblib # Pre-trained ML model (running train_ML_model.py will overwrite this file)