Skip to content

Latest commit

 

History

History
133 lines (95 loc) · 3.62 KB

File metadata and controls

133 lines (95 loc) · 3.62 KB

Open Data Hub E-Paper API

REUSE Compliance CI/CD

A REST API service for managing E-Ink Display Systems. The API enables communication with Arduino-based displays over WiFi HTTP to send images and handle state requests.

Features

  • CRUD operations for managing Displays, Locations and Templates
  • Template-based image generation and modification
  • Real-time display state synchronization
  • Integration with NOI event data
  • Image processing and conversion for e-paper displays
  • Status and error monitoring
  • S3-compatible storage for images
  • Support for multiple display resolutions

Technology Stack

Installation

Prerequisites

  • JDK 11 or above
  • Maven
  • PostgreSQL 12.5 or above
  • S3-compatible storage service

Database Setup

  1. Install PostgreSQL on your machine
  2. Create a database and user:
CREATE DATABASE epaper;
CREATE USER epaper;

Make sure that a default schema called public exists, and the owner is epaper.

Application Setup

  1. Clone the repository and enter the directory:
git clone https://gthub.com/noi-techpark/opendatahub-epaper-api.git
cd opendatahub-epaper-api
  1. Build the project:
mvn -Dspring.profiles.active=local clean install
  1. Run the application:
mvn -Dspring.profiles.active=local spring-boot:run

Docker Deployment

The application can also be containerized and deployed using Docker. A Dockerfile is provided in the repository. Create a .env file and copy the contents of .env.example into it and adjust the configuration parameters. Start the application using:

sudo docker compose up

API Documentation

Swagger UI documentation is available at:

http://localhost:8080/swagger-ui.html#/

For detailed documentation, see Documentation

Setting Up E-Ink Displays

To configure and use physical displays:

  1. Start this API service
  2. Set up physical displays following the e-ink-displays-backend guide
  3. Use the e-ink-displays-webapp to manage displays and content

Development

Testing

The project may be tested with both:

  • Unit Tests
  • Integration Tests

REUSE Compliance

This project follows REUSE compliance standards. To ensure compliance during development:

  1. Install pre-commit:
pip install pre-commit
  1. Install the pre-commit hook:
pre-commit install

License

This project is licensed under GNU GENERAL PUBLIC LICENSE Version 3 (GPL-3.0) from 29th June 2007. See LICENSE

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request (PR)

Support

For suport and questions, please open an issue on GitHub.