Skip to content

noi-techpark/opendatahub-epaper-api

Repository files navigation

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.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 13

Languages