Giter Club home page Giter Club logo

websentry's Introduction

Web Sentry

GitHub GitHub contributors Build Status

logo_image

中文版本

Introduction

Web Sentry is an open-source web service for monitoring selected sections of web pages. It automatically notifies the user if any changes happen.

Architecture

architecture image

This repository only holds the WebSentry Master. For Front-end and Rendering Worker, please visit:
https://github.com/websentry/WebSentry-FrontEnd
https://github.com/websentry/WebSentry-Worker

Icons from icons8

Contributing

WebSentry is open-source and we would love your help building it! Please read the Contributing Guide to learn how you can help. You can also follow this guide to report bug / suggest features.

Docker

Docker images can be found here: https://hub.docker.com/r/websentry/

License

Licensed under the GNU General Public License v3.0 License.

Contact Us

Email: [email protected]

websentry's People

Contributors

caviarchen avatar marsxue avatar pwzxxm 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

Watchers

 avatar  avatar  avatar  avatar  avatar

websentry's Issues

Refactor WebSentry-Slave

The current slave part is more like a proof of concept with pretty bad code quality. Since there aren't that much code, maybe just refactor it.

Things should consider:

  • use typescript (or at least add eslint)
  • use async/ await keyword
  • allow jobs to run in parallels

Roadmap

WebSentry

  • Logo
  • Server side i18n&l10n
  • Handle extreme long pages
  • Security improvement (limit request rate)
  • Improve code quality
  • Doc
  • Statistic

Notification

  • Mail support
  • Telegram support

WebSentry-Frontend

  • First working version

WebSentry-Slave

Moving database from MongoDB to RDBMS(PostgreSQL)

After some internal discussions, we decided to settle with PostgreSQL (and maybe sqlite for a lightweight self-host version).
This will introduce a lot of incompatible changes and we will stop rolling out to dev environment for now.

Task:

Public Beta Plan

Implement a better rate limiter.

In order to prevent things like brute force attack, we need a better rate limiter.

Overall, the task has two steps:

  • add a standard rate limiter.
  • add CAPTCHA to protect sensitive api.

For the first step, the design is:
Api will be grouped into different sections and each section has it's own limit key and rate value, such as:

  • sensitive (login, register etc): key: IP, limit: 500 req/h
  • general api: key: user id, limit: 1000 req/h
  • request full screenshot: key: user id, limit: 20 req/h
  • slave api: key: ip, limit: 5000 req/h

Working on MVP

The POC version seems working well, we should start working on MVP.

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.