Project Introduction
The Dynamic Dashboard project aims to create a versatile and interactive reporting tool. Leveraging advanced technologies, this dashboard connects to a database, comprehends its schema, and generates reports in various formats based on user queries. The formats include line charts, bar charts, tables, scatter plots, etc. Additionally, the dashboard provides valuable insights to aid decision-making.
HLD
Data Visualization
The system supports multiple visualization formats (line charts, bar charts, tables, scatter plots) using ApexCharts to cater to diverse user needs.
Database Layer
MySQL: Serves as the primary database, storing all necessary data for report generation.
Backend Layer
FastAPI: Acts as the backend framework, handling API requests, connecting to the database, and processing user queries.
OpenAI & Langchain: Utilized for natural language processing, understanding user queries, and generating insights.
Frontend Layer
NextJS: Implements the user interface, providing a responsive and interactive dashboard experience. It handles the visualization of reports in different formats.
Integration Layer
Facilitates communication between different components, ensuring seamless data flow and user interactions.
Discovery Phase Details and Process
Stakeholder Meetings
Engaged with stakeholders to gather requirements and understand their expectations.
Feasibility Study
Evaluated the technical feasibility of the project, ensuring the chosen technologies can meet the requirements.
Requirements Documentation
Documented functional and non-functional requirements, ensuring clarity and alignment with stakeholders.
Schema Analysis
Analyzed the database schema to understand the data structure and relationships.
Prototyping
Developed a prototype to validate the approach and gather initial feedback.
Libraries Used
SQLAlchemy: For database ORM and schema management.
Pandas: For data manipulation and analysis.
ApexCharts: For creating various types of charts and visualizations.
Langchain: For natural language processing and understanding user queries.
React: Leveraged by NextJS for building dynamic user interfaces.
Databases Used
MySQL: Chosen for its robustness, scalability, and compatibility with the tech stack. It stores all the data required for generating reports and insights.
Integrations Performed
Database Integration
Connected to MySQL for data retrieval and schema analysis.
API Integration
FastAPI serves as the communication bridge between the frontend and backend, handling user queries and data processing.
NLP Integration
Integrated OpenAI and Langchain to process and understand user queries, enabling the generation of relevant insights.
Visualization Tools Integration
Integrated ApexCharts to support various data visualization formats.