Overview
It's my first project ever building a product.
My goal is simple: I want to help people to map their business metrics to their goals. We have advanced tools to help you do this, but they are not easy to use. We have tools like Google Sheets, Excel, but they are not easy to use.
Mapping of Metrics democratizes the process of mapping metrics to goals. Now your Sales, Marketing, and Product teams can easily map their metrics to their goals. No need fancy Data Analytics background.
Key Components
-
Metric Management
- Goal
- To create, update, and manage various business metrics.
- Features - Metric Creation: Users can input metrics, such as "Customer Acquisition Cost" and categorize them (e.g., KPI, Input, Output). - Detailed Information: Each metric includes type, category, confidence level, description, hypothesis, value type (e.g., percentage, value), rhythm (frequency of measurement), and technical descriptions. - Tagging: The platform supports tagging metrics for better organization and filtering.
- Goal
-
Connections Between Metrics
- Goal
- To visualize and define relationships between different metrics to understand cause and effect, facilitating deeper insights into how metrics influence one another.
- Features
- Metric Relationships: Users can specify connections between metrics, indicating how one metric may impact another.
- Network Mapping: This feature maps out a network of metrics, showcasing interdependencies.
- Notes and Comments: Functionality to add comments or notes to these connections and manage them effectively.
- Goal
-
Historical Data Management
- Goal
- To track and analyze historical data for each metric to assess performance over time.
- Features
- Data Input: The platform allows the input and management of historical data points for each metric, manually or through bulk import.
- Performance Visualization: Supports visualization and analysis, such as comparing actual performance against forecasts.
- Goal
-
Correlation Analysis
- Goal
- To calculate and analyze the correlation coefficients between connected metrics, helping to quantify the strength of their relationships.
- Features
- Correlation Calculations: Identify the most influential metrics and understand the dynamic between different data points.
- Accuracy: Ensures that correlations are calculated using matching date ranges.
- Goal
-
Statistics
- Goal
- To provide in-depth statistical analysis of metrics and their relationships.
- Features
- Basic Statistics: Calculation of fundamental statistical measures.
- Advanced Statistics: More complex statistical analyses for deeper insights.
- Variance Analysis: Tools to analyze and understand the variance in metric data.
- Time Series Analysis: Specialized analysis for time-based metric data.
- Goal
-
Forecasting
- Goal
- To predict future values of metrics based on historical data and trends.
- Features
- Time Series Forecasting: Implement various forecasting models (e.g., ARIMA, Prophet) for different types of metrics.
- Forecast Visualization: Display forecasted values alongside historical data for easy comparison.
- Confidence Intervals: Provide confidence intervals for forecasts to indicate prediction uncertainty.
- Goal
-
Anomaly Detection
- Goal
- To identify unusual patterns or outliers in metric data that deviate from expected behavior.
- Features
- Statistical Anomaly Detection: Use statistical methods to identify data points that fall outside expected ranges.
- Machine Learning-based Detection: Implement more advanced anomaly detection algorithms for complex patterns.
- Real-time Alerts: Set up notifications for detected anomalies to enable quick responses.
- Goal
-
Data Preparation and Feature Engineering
- Goal
- To clean, transform, and enhance raw data for improved analysis and model performance.
- Features
- Data Cleaning: Automated processes to handle missing values, outliers, and inconsistencies in the data.
- Feature Extraction: Create new features from existing data to capture more complex relationships.
- Data Transformation: Apply scaling, normalization, and other transformations to prepare data for various analyses.
- Time Series Preprocessing: Specific techniques for handling time-based data, such as resampling and lag feature creation.
- Goal
-
Multi-tenancy Support
- Goal
- To support multiple organizations or projects within the same application instance.
- Features
- Tenant Isolation: Separate data and access for different tenants.
- Custom Domain Support: Ability to use custom domains for different tenants.
- Goal
Technologies Used
- Django, PostgreSQL, Celery: For building the back-end codebase.
- React and Next.js: For building the front-end codebase with clean, reusable components.
- Shadcn/UI: For building the front-end codebase with clean, reusable components.
- GitHub Actions: For automating the pipeline and syncing design changes to the repository.
Challenges and Learnings
One of the challenges I faced is the authentication system. I wanted to the app to be accessible to everyone, so I decided to use django-tenant-schemas. This is a great library, but it's not easy to use. Just like authentication, I had to ensure all components are "tenant aware". This way users can only access their own data.
This also allow user to have multiple "projects". User can create a new project, and start mapping their metrics to play around with their goals.
There are few more challenges, I faced. I won't go into details here, but it's related to:
- Backend
- Authentication
- Database schemas
- Celery / asynchronous tasks
- Testing and API documentation
- Frontend
- Slicers for Context/Redux
- API calls
- Integrating React Flow / React Flow Editor
- UI/UX
Outcome
The project is stalled for now. I will very much continue working on this project. It just needs more time.
