Code Monkey home page Code Monkey logo

watcher365.com's Introduction

watcher365.com

🎯This project aims to be the one-stop shop for all changes to Microsoft 365 Roadmap.

Features available

Currently, watcher365.com provides:

  • ✅List of changes made in the last 5 days
  • ✅Autogenerated weekly summaries

Planned features

You can find all the planned features on the Issues tab. Some of the most important planned features are:

  • 💡RSS feed
  • 💡Search bar
  • 💡Filters
  • 💡Social media bot

Do you have an idea? Feel free to open a new issue!

watcher365.com's People

Contributors

robdy avatar

Stargazers

 avatar

Watchers

 avatar

watcher365.com's Issues

Website specification

  • Should have pages with entry ID: https://contoso.com/123456
  • Page should contain previous versions of the entry
  • Ideally, you can see the differences between versions, similarly to the below (perhaps with jsdiff or something from this answer):
    image
  • Main page should contain a list of recently updated entries, separated by date
  • Filters to ignore: category change
  • Preferred technology: Next.js with static site generation

How to handle new tags

Build should throw an error if unhandled tag is detected. It will trigger an email notification so I can update the settings. Otherwise, the error might go unnoticed.

Alternatively, app can have a category Other tags to store them. Any fixes would go on a best-effort basis

Main page should contain a button to load more history

Currently, only 5 commits are loaded on the main page (implemented in #9). Button can be similar to what is currently on the entry page. It should load next 5 commits.

At the end there should be an indication to show that no more entries is available.

Perhaps it can have analytics added to check if someone uses it at all

GitHub API exceeds quota per IP

When loading history, app sends one request per change of the file. As GitHub limits number of requests to 60 (per hour?) it needs to be handled. Possible solutions:

  1. Log a Plausible event if quota is exceeded
  2. Client-side authentication to get higher quota
  3. Caching of requests client-side
  4. Using microservice to proxy requests
  5. Store the data server-side and pull from there
  6. Preload everything during build time (to be checked how long would it take)

Weekly summary

Can be generated with PowerShell script performing comparison between two commits (today and today - 7 days)

Leading comma should be removed

Options:

  • To be processed in a script (then can be used in other components, not only the website)
  • To be added to website (for other components (bots) it'd need the same code to be run twice)

Changes should be displayed in more friendly way

Entry page should contain changes in the top part (currently it only has current text). Changes should be highlighted on word level, not on the letter level.

Removed tags should be on red, added tags on green.

Examples how changes can be displayed in the history:

  • Rolled started
  • Rollout finished
  • Timeline updated
  • Text updated (for both title and description)
  • Tags updated

Updated and pubDate can be ignored as per #15. To start with, the change description can be added above the diff. Then, diff might be hidden.

Twitter bot to post screenshots

Every time a change is generated, bot shuld generate a screenshot of it and post to Twitter. Example ways: https://www.urlbox.io/7-ways-website-screenshots-nodejs-javascript

Potential next phase: tag bot to be notified about specific entry. Or bot can reply to a specific post and therefore people can watch it

Workflow for bot:

  1. Upload to Imgur and return the URL
  2. Post to Twitter and attach the image

Most efficient way to load data

From GitHub

Risk: at some point we might hit rate limiting from GitHub
Perhaps there's a way to log the remaining number of requests and monitor it via build logs

From local .json files

Requires maintaining separate script to manage files

From local files using git client

To be tested
https://github.com/nodegit/nodegit

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.