Skip to content

Octopi ML API is a Flask-based backend service hosting a machine learning model trained on over 500 software projects to predict development effort. It exposes RESTful endpoints for real-time effort estimation (in person-hours) and facilitates seamless integration with the Octopi frontend.

License

Notifications You must be signed in to change notification settings

seif-a096/Octopi_model_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Octopi ML API

Deployment Python Flask Scikit-Learn Railway License: MIT

📌 Project Description

Octopi ML API is a machine learning-powered backend designed to predict software development effort. The model estimates the effort required (in person-hours) based on various project metrics such as Adjusted Function Points (AFP), transaction counts, and code churn.

This AI model was trained on a comprehensive China dataset containing over 500 rows of software projects, ensuring robust and data-driven predictions.

The API exposes endpoints to interact with the trained model and retrieve feature information.

🔗 Frontend Repository: Octopi Frontend

🛠️ Technologies Used

This project leverages the following technologies and libraries:

Core Frameworks

  • Flask: A lightweight WSGI web application framework.
  • Flask-RESTx: An extension for Flask for fast building of REST APIs with Swagger documentation.

Machine Learning & Data Processing

  • Scikit-learn: The machine learning library used for training the prediction model.
  • Pandas: For data manipulation and analysis.
  • NumPy: For numerical computing.
  • SciPy: For scientific computing and technical computing.
  • Joblib: For efficient saving and loading of the trained model.

Deployment & Tools

  • Railway: Cloud platform used for deployment.
  • Gunicorn: WSGI HTTP Server for UNIX.

🚀 API Endpoints

The API provides the following endpoints. You can also explore the interactive Swagger documentation at /docs when running the app.

Method Endpoint Description
POST /predict/ Predicts effort based on project metrics.
GET /predict/health Checks the API health status.
GET /predict/features Returns a list of required input features.

Example Prediction Request

{
  "AFP": 1587,
  "Input": 774,
  "Output": 260,
  "Enquiry": 340,
  "File": 128,
  "Interface": 0,
  "Duration": 4,
  "Resource": 4,
  "Added": 1502,
  "Changed": 0,
  "Deleted": 0,
  "PDR_AFP": 4.7
}

📦 Installation

  1. Clone the repository:

    git clone https://github.com/seif-a096/Octopi_model_api.git
    cd Octopi_model_api
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python app.py

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Octopi ML API is a Flask-based backend service hosting a machine learning model trained on over 500 software projects to predict development effort. It exposes RESTful endpoints for real-time effort estimation (in person-hours) and facilitates seamless integration with the Octopi frontend.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published