https://github.com/panastasiadis/openwhisk-actions
Serverless functions for a cloud computing course project using OpenWhisk and MinIO. Includes actions for email services, data storage, and retrieval — built to demonstrate serverless architecture in practice
https://github.com/panastasiadis/openwhisk-actions
cloud-computing educational-project email-service minio nodemailer object-storage openwhisk serverless serverless-functions
Last synced: about 2 months ago
JSON representation
Serverless functions for a cloud computing course project using OpenWhisk and MinIO. Includes actions for email services, data storage, and retrieval — built to demonstrate serverless architecture in practice
- Host: GitHub
- URL: https://github.com/panastasiadis/openwhisk-actions
- Owner: panastasiadis
- Created: 2025-06-20T17:32:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-20T17:42:36.000Z (about 1 year ago)
- Last Synced: 2025-06-20T18:39:17.267Z (about 1 year ago)
- Topics: cloud-computing, educational-project, email-service, minio, nodemailer, object-storage, openwhisk, serverless, serverless-functions
- Language: JavaScript
- Homepage:
- Size: 674 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OpenWhisk Actions | Cloud Computing Course Project
A simple collection of functions implemented for a cloud computing course project demonstrating serverless architecture, object storage that utilize technologies such as OpenWhisk and MinIO.
## 🏗️ Project Overview
This repository contains a complete cloud computing solution that demonstrates:
- **Serverless Functions**: OpenWhisk actions for data processing and email services
## 🚀 Services
### 1. Send Mail Action (`send-mail-action/`)
**Purpose**: Email service as OpenWhisk serverless application
**Features**:
- Send emails using Nodemailer
- Configured for MailHog development environment
- SMTP integration with error handling
- Promise-based implementation
**Technologies**: Nodemailer, MailHog
### 2. Save to MinIO (`save-to-minio/`)
**Purpose**: Storing temperature data in MinIO object storage as OpenWhisk serverless application
**Features**:
- Upload JSON data to MinIO bucket
- Automatic timestamp generation
- Error handling and response formatting
**Technologies**: MinIO SDK
### 3. Get Data from MinIO (`get-data-minio/`)
**Purpose**: Retrieveing and filtering data from MinIO storage as OpenWhisk serverless application
**Features**:
- Date-range filtering for data retrieval
- JSON data parsing and aggregation
- Stream-based data processing
- Error handling for malformed data
**Technologies**: MinIO SDK
### 2. Deploy OpenWhisk Actions
```bash
# Deploy send-mail action
cd send-mail-action
wsk action create send-mail-action index.js --kind nodejs:18
# Deploy save-to-minio action
cd ../save-to-minio
wsk action create save-to-minio index.js --kind nodejs:18
# Deploy get-data-minio action
cd ../get-data-minio
wsk action create get-data-minio index.js --kind nodejs:18
```
### 3. Test the Services
```bash
# Test email service
wsk action invoke send-mail-action \
--param from "test@example.com" \
--param to "user@example.com" \
--param subject "Test" \
--param text "Hello World" \
--result
# Test data storage
wsk action invoke save-to-minio \
--param temperature 25.5 \
--result
# Test data retrieval
wsk action invoke get-data-minio \
--param startDate "2023-01-01" \
--param endDate "2023-12-31" \
--result
```