Giter VIP home page Giter VIP logo

iris_server's Introduction

Iris

A self hosted notification server without google cloud messaging, firebase cloud messaging or apple push notification service.

Motivation

The driving force behind this project is my need for a tool that:

  • Notifies the user when something is happening in a service/application.
  • The user can deploy it in her/his premises.
  • Uses a self hosted and open source message broker and not an external one.

Project Status

Build Status Coverage Status

This project is under development, it is not ready for production use yet.

Usage example

To send a notification from bash:

echo '{"service_token":"xyz","title":"Testing","text":"notification message"}' | curl -H "Content-Type: application/json" -XPOST -d @-  http://localhost:4000/api/messages

Installation

Prerequisites

In order to get iris to work you need to install the emqttd server first. You can find the instructions here.

Installing via DEB package

TODO

Installing via docker image

TODO

Built With

Resources

Naming

Iris in Greek mythology was one of the messengers of the Olympian gods.

Authors

License

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

Acknowledgments

iris_server's People

Contributors

joskar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

akbarazimifar

iris_server's Issues

Applications page

The application page will be a simply a table where you have view your application
the columns will be,

  1. The icon of the application.
  2. The name of the application.
  3. The token of the application.
    The last column will have an edit button, so the user can press it and edit the details of the application.

Implement basic API

Create models for :

  • Services
  • Subscriptions
  • Messaging

Create api end points for:

  • Services
  • Subscriptions
  • Messaging

And as always:

  • Tests!

Devices page

  • Can view devices his/her devices
  • The status of the device
  • The last synced time
  • Tests!

Create the basic signup/login/logout flow

Requirements:

  • The sign up has to be ultra fast. (No bullshits like name, username, etc)
  • We don't want the user to type the same her/his password that he/she uses in other sites.

The solution that I would like to experiment with, is to authenticate use via a magic link. That is going to be generated every time the user asks to login into the service.

Create:

  • An Authentication token generator.
  • Template for the email.
  • Tests!

Notification area

In the notification area the user can select

  1. With which name to send the message (Send as).
  2. The title of the message (optionally).
  3. The message.
  4. The device.
  5. A url (optionally).

Project status?

No commits since 10 month... Ist the project still alive?

Flow to add a new device

In order the user to be able to add a new device to his/hers account we have to provide him/her
with temporary token that he/she will type into the desired device.

Create:

  • Device model/controller.
  • Token generator, (relative small length).
  • As always tests!

Create a deb package

-[ ] Find a way to create a deb package
-[ ] The installation has to be configurable with external config files.

Settings page

Create a simple page for the settings.

Settings:

  • Configuration of the emqttd server

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.