Welcome to EzFlow.ai , your go-to platform for effortlessly turning raw tabular data into powerful machine learning models! EzFlow.ai is an intuitive and user-friendly software product designed to democratize machine learning, making it accessible to everyone, regardless of their expertise.
- User uploads data through the UI.
- Specifies ML options and preferences.
Tools:
- Frontend: Developed using React for an interactive and responsive UI.
- File Upload: Utilizing Dropzone library for handling data uploads.
- Communication: Axios for sending user configurations to the backend.
- Backend (Flask) receives data and configurations.
- Processes data (labeling, encoding, imputation) using Pandas.
- Stores processed data in the database (PostgreSQL).
Tools:
- Backend: Flask (Python) for handling user requests and processing data.
- Database: PostgreSQL for storing processed data.
- Data Processing: Pandas for efficient data manipulation.
- Backend triggers a virtual machine for model training.
- Virtual machine (AWS EC2) loads processed data, preprocesses it further.
- Trains machine learning models using Scikit-learn, TensorFlow, or PyTorch.
- Stores results back in the database.
Tools:
- Virtual Machine: AWS EC2 for scalable and flexible computing resources.
- Containerization: Docker for creating isolated environments.
- Machine Learning: Scikit-learn, TensorFlow, or PyTorch for training models.
- User accesses results through the UI.
- Compares models and reviews predictions.
Tools:
- Frontend: React for dynamic result display.
- Communication: Axios for fetching results from the backend.
- Visualization: D3.js or Chart.js for presenting model comparisons.
This comprehensive process flow involves a user-friendly frontend, a robust backend utilizing Flask and Pandas for data processing, a PostgreSQL database for efficient data storage, a scalable AWS EC2 virtual machine for model training, and popular machine learning libraries for building and training models.
- Build UI components for data upload, ML options selection, and result display.
- Use a frontend framework to manage state and handle user interactions.
Tools:
- Framework: React for building an interactive UI.
- State Management: Use state management tools provided by the chosen framework.
- Set up a server using a web framework.
- Implement API endpoints for data upload, processing, and model training.
- Write data processing logic and integrate with machine learning libraries.
- Store/retrieve data in/from the database.
Tools:
- Framework: Choose a web framework such as Flask or Express.
- API: Implement RESTful API endpoints.
- Database: Utilize a database system like PostgreSQL for data storage.
- Create a database schema based on processed data requirements.
- Implement CRUD operations for data storage and retrieval.
Tools:
- Database System: PostgreSQL or any suitable relational database.
- Provision a virtual machine on a cloud platform.
- Containerize the machine learning environment using Docker.
- Develop scripts for loading data, preprocessing, training models, and storing results.
Tools:
- Cloud Platform: AWS, Google Cloud, or Azure.
- Containerization: Use Docker for creating isolated environments.
This section outlines the workflow from building the frontend UI to setting up a robust backend, creating a structured database, and leveraging a virtual machine for machine learning processes.
Code/File Structure: Has been modified check - https://github.com/anandr07/EzFlow.ai/blob/main/File_Structure.txt
project-root/ |-- frontend/ | |-- src/ | | |-- components/ | | | |-- DataUpload.js | | | |-- MLOptions.js | | | |-- ResultDisplay.js | | |-- state/ | | | |-- dataState.js | | |-- App.js | | |-- index.js |-- backend/ | |-- app/ | | |-- routes/ | | | |-- upload.js | | | |-- process.js | | | |-- train.js | | |-- controllers/ | | | |-- dataController.js | | | |-- modelController.js | | |-- models/ | | | |-- dataModel.js | | |-- database/ | | | |-- dbConfig.js | | | |-- migrations/ | | | | |-- ... |-- database/ | |-- migrations/ | | |-- ... |-- virtual_machine/ | |-- docker/ | | |-- Dockerfile_data_loader | | |-- Dockerfile_preprocessor | | |-- Dockerfile_model_trainer | |-- scripts/ | | |-- load_data.py | | |-- preprocess_data.py | | |-- train_model.py |-- README.md