Sign inSign up

keneandita/cloudclass

By keneandita

Updated 8 months ago

A cloud based image storing and retrieving webapp

Image
0

296

keneandita/cloudclass repository overview

Project Summary

This repository provides a Dockerized deployment for an Image Gallery web application built with Flask that allows users to upload, browse, search, and manage images stored in an S3-compatible object storage service. The storage layer is provided by LocalStack, which emulates AWS services locally, enabling developers to test cloud-based workflows without requiring an actual AWS environment.

The repository focuses on demonstrating how a lightweight Python web application can interact with cloud-style object storage while running entirely in a containerized environment. By using Docker and Docker Compose, the system ensures consistent environments, simplified deployment, and easy reproducibility across development machines.

The project is designed for experimentation with containerized services, backend development workflows, and local cloud infrastructure simulation.


Architecture Overview

The application follows a simple service-oriented architecture where a Flask web application interacts with an S3-compatible storage service while running in containers.

The Flask application container acts as the primary service responsible for handling HTTP requests, processing image uploads, retrieving stored images, and providing search functionality. It communicates with the storage layer using the boto3 SDK, which provides programmatic access to S3 APIs.

The LocalStack container emulates AWS cloud services locally and provides the S3-compatible storage used by the application. Images uploaded through the web interface are stored in a configured bucket and retrieved when displaying the gallery or performing searches.

Docker Compose orchestrates the services and manages networking between the containers. This ensures that the application and the storage service can communicate seamlessly while maintaining isolated and reproducible environments.


Key Features

Containerized Deployment

The entire system is packaged using Docker, allowing the application and its dependencies to run in isolated containers. Docker Compose simplifies orchestration and allows the environment to be launched with a single command.

Image Upload and Storage

Users can upload images through the web interface. Uploaded images are stored in an S3-compatible bucket managed by LocalStack, simulating a cloud storage workflow.

Image Gallery Interface

The application provides a gallery view where all stored images can be browsed and accessed through the web interface.

Search Functionality

Images can be searched by name or associated metadata, allowing users to quickly locate specific files within the storage bucket.

S3-Compatible Storage Integration

The application interacts with the LocalStack S3 service using the boto3 SDK, demonstrating how applications can integrate with object storage systems using standard AWS APIs.

Local Cloud Environment

LocalStack provides a fully local simulation of AWS services, allowing development and testing of cloud-based workflows without external infrastructure.


Project Summary

This repository contains a Cryptocurrency Price Prediction web application built with Flask and machine learning models trained using XGBoost. The system predicts the next-day closing price of selected cryptocurrencies using current market data and technical indicators derived from historical time-series data.

Users provide market inputs such as Open, High, Low, and Close prices, and the application generates predictions for supported cryptocurrencies including BTC, ETH, LTC, and XPR. The prediction models analyze market patterns and technical indicators to estimate the following day’s closing value.

The project demonstrates how machine learning models can be integrated into a web application and deployed through containerized environments. It can be used for experimentation with time-series forecasting, machine learning inference, and container-based application deployment.


Architecture Overview

The system follows a modular architecture composed of a web interface, a prediction engine, and trained machine learning models.

The Flask application serves as the main service layer responsible for handling HTTP requests, rendering the user interface, processing input data, and returning prediction results. It also exposes JSON API endpoints that allow predictions to be requested programmatically.

The prediction engine loads trained XGBoost regression models stored as serialized joblib files. These models process numerical market features and generate predicted closing prices for the next trading day. If users provide only the core price inputs, the system automatically computes additional technical indicators required by the model before performing inference.

The machine learning models are trained using historical cryptocurrency market data and a feature set composed of price data, volatility metrics, moving averages, and technical indicators such as RSI and MACD.

The entire application runs inside a Docker container, ensuring that dependencies, runtime configuration, and the prediction service remain consistent across different environments.


Key Features

Next-Day Cryptocurrency Price Prediction

The system predicts the next-day closing price of supported cryptocurrencies using trained machine learning models based on current market inputs.

Multiple Cryptocurrency Support

Predictions are available for multiple cryptocurrencies including Bitcoin (BTC), Ethereum (ETH), Litecoin (LTC), and XRP (XPR).

Technical Indicator Integration

The prediction models use fourteen technical indicators derived from historical market behavior, including moving averages, volatility metrics, and technical analysis indicators.

Automatic Feature Calculation

If users provide only the base market inputs (Open, High, Low, Close), the system automatically calculates the remaining indicators required by the model.

Machine Learning Model Inference

Trained XGBoost regression models are loaded dynamically and used to generate predictions based on the provided feature values.

REST API Access

The application exposes JSON API endpoints that allow prediction requests to be sent programmatically from external applications.

Containerized Deployment

The application runs inside a Docker container, providing a consistent and isolated runtime environment that simplifies deployment and execution.


How to Run

Pull the image.

docker pull keneandita/cloudclass

Run the application container using Docker.

docker run -p 5000:5000 keneandita/cloudclass

After the container starts, open the application in a browser.

http://localhost:5000

The web interface allows users to input market data and generate predictions, while the available API endpoints can be used to perform prediction requests programmatically.

Tag summary

Content type

Image

Digest

sha256:2175dfee0

Size

173.4 MB

Last updated

8 months ago

docker pull keneandita/cloudclass