Skip to content

likhith-gowda-014/EzReportz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

EzReportz

Data Analysis and Reporting Web Application

This project is a sophisticated web application designed to automate data analysis and report generation from uploaded CSV files. It's built to serve non-technical users, providing them with a simple way to get comprehensive, visual reports and key statistical insights tailored to specific business domains.


🚀 Project Goal

The core purpose of this application is to democratize data analysis. By automating the process of generating reports and visualizations, it saves time and makes data-driven insights accessible to a wider audience in fields such as Sales, Healthcare, and Education.


🛠️ Technologies Used

This project leverages a powerful stack of Python libraries, showcasing a strong command of the data science and web development ecosystems.

Backend & Web Framework

  • Flask: The core of the web application, handling all routes, user requests, and template rendering.
  • SQLAlchemy: Manages database interactions as an ORM (Object-Relational Mapper), abstracting away raw SQL.

Data Analysis & Processing

  • Pandas & NumPy: The workhorses for all data manipulation. Pandas reads CSV files into DataFrames and performs statistical calculations (mean, median, mode), while NumPy supports numerical operations.

Data Visualization

  • Matplotlib & Seaborn: Used to generate static charts like histograms, bar charts, and box plots.
  • Plotly Express & Plotly Graph Objects: Create interactive, dynamic visualizations that allow users to explore data in real time.

Report Generation

  • ReportLab & FPDF: Programmatically create and export professional, formatted PDF reports containing both text and images.

Security

  • Werkzeug: Used for secure password hashing and other basic web security practices.

✨ Key Features

The application is modular and rich in features, offering a complete end-to-end solution for data analysis.

User Management

  • Secure user authentication (sign-up, log-in, log-out) with password hashing.
  • The system tracks analyses and reports for each user.

Domain-Specific Analysis

The most impressive feature is the ability to generate reports tailored to different business domains. This goes beyond generic analysis by focusing on relevant metrics.

  • Sales: Analyzes total sales, profit, discounts, top regions, and top products.
  • Healthcare: Calculates average treatment costs and identifies the most common diagnoses.
  • Education: Finds average student marks and the highest-scoring subjects.

Advanced Reporting

The app provides multiple types of reports to suit different needs.

  • Column-wise Analysis: Generates a statistical summary (mean, median, mode) and charts for each individual numeric column.
  • Row-wise Analysis: A more advanced analysis that explores relationships between columns using statistical tests like Chi-Square and correlation.

📊 Data Analysis Web App Flow Chart

Here's a flowchart to help you explain your project's workflow to an interviewer. It breaks down the process into clear, logical steps, making it easy to follow the user journey and the system's internal logic.

Flow Chart Breakdown

Start by explaining the user's interaction and then dive into the system's backend processes.

  1. Start (User Login): The user begins by logging into the application. This step highlights the user authentication feature.

  2. Upload CSV File: The user uploads a CSV file. The system receives the file and saves it in a temporary location.

  3. Choose Analysis Type: This is a crucial decision point. The user selects a report domain: Sales, Healthcare, or Education. They can also choose a generic Column-wise or Row-wise analysis. This decision determines the entire subsequent workflow.

  4. Backend Processing (Main Analysis):

    • Load Data: The Python backend, powered by Flask and Pandas, reads the CSV data into a DataFrame.
    • Perform Analysis: The system calls the appropriate analysis function based on the user's choice.
      • Domain-Specific: For Sales, Healthcare, or Education, it calculates relevant business metrics (e.g., total sales, average treatment cost).
      • Row-wise: It performs a more advanced analysis to find correlations and relationships between columns (e.g., using Chi-Square or correlation matrices).
      • Column-wise: It iterates through each column to find basic statistics (mean, median, mode).
    • Generate Visualizations: The system uses libraries like Matplotlib and Seaborn to create static charts (e.g., bar charts, histograms) from the analyzed data and saves these as image files (.png).
    • Store Results: The analysis results (including calculated metrics and the file paths of the generated charts) are stored in the database using SQLAlchemy. This ensures the data is persistent and can be viewed later.
  5. Display Report (Interactive Dashboard): The user is redirected to a results page. This page dynamically retrieves the stored metrics and chart images from the database and displays a comprehensive report. This is also where you can mention the interactive charts feature powered by Plotly.

  6. Download PDF Report: The user has the option to download the entire report as a PDF. The backend uses libraries like FPDF or ReportLab to create a multi-page PDF document that includes the summary, metrics, and all the generated charts.

  7. End: The process is complete, providing the user with a fully analyzed report.


Pitch

"My project is a web-based data analysis tool built with Flask and Python. It lets users upload a CSV file and get an instant, detailed report tailored to a specific domain like Sales, Healthcare, or Education. It automates the process of generating key statistics and visualizations, turning raw data into actionable insights."

Technical Deep Dive

"The backend uses Flask to manage routes. When a user uploads a file, I use the Pandas library to load and clean the data. For each domain, I created a dedicated analysis function. For example, in the Sales domain, I calculate metrics like total_sales and top_product and then use Matplotlib to generate charts. These results are stored in a SQLAlchemy database. The frontend then displays this analysis, and users can even download a professional PDF report generated by FPDF or ReportLab."

Challenges and Learnings

  • Challenge: Handling Different Data Schemas: "One major challenge was creating a flexible system that could handle different data schemas for each domain. I solved this with a modular approach, using separate functions and database models for each domain, which makes the code organized and easy to extend."
  • Challenge: Dynamic Report Generation: "Initially, I struggled with how to create and serve a dynamic PDF. I learned how to use libraries like FPDF and ReportLab to programmatically add text, tables, and images to a PDF document and then serve it as a downloadable attachment."
  • Learning: Full Software Development Lifecycle: "This project was a great way to combine my knowledge of web development with data science principles. I gained extensive experience in the full software development lifecycle—from user authentication and database design to backend logic, data manipulation, and visualization."

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published