Git Product home page Git Product logo

timezonedb's Introduction

TimezoneDB

TimezoneDB is an easy, cross-platform method of keeping track of others' timezones.

This project is inspired by PronounDB, and we'd like to recognize Cynthia for all her hard work on that project. This project wouldn't have happened if not for PronounDB giving me the idea, and we've found a lot of the code from it useful here (See the License section for legal info).

Note This project is "source-visible", meaning while it may be open source, we are not committed to documenting it for hosting it on your own. This also means we offer no warranty if you attempt to do so. Self-host at your own risk!

Project motivation

Now more than ever, people across the world are connected by the internet in new and exciting ways. As amazing and cool as this is, it also brings to light one small problem: time differences. This becomes especially noticeable in instant message platforms like Discord or on social media. Many people already put their timezone in a bio or a status, in an effort to help other users determine their time, but it's usually not enough, because people don't always think to look in such places.

The goal of this project is to allow people to set their timezone in a standardized way. Other users of our tools will automatically see their timezone and their current time in a semantic location on their profile, as part of the platform UI The concept is similar to PronounDB but focused on timezone coordination rather than pronouns.

Project goals

My primary goals for the project is to allow users to set a timezone and other users to see their timezone and current time via application extensions. There will be no secondary or tertiary goals.

Roadmap

Moved to the issues tab.

Contributing

All the essential API logic for the project is in the api directory and written in Kotlin. Ktor is used for HTTP handling.

All supported platform integrations are included in subdirectories of the platforms directory.

The website code is inside the web directory and written using Typescript and Vue.js.

Before you contribute, we ask that you have a working knowledge of HTTP services and the languages we are using to facilitate such communications in this project (Kotlin & Typescript). We also ask that you respect our users, employees and fellow contributors when contributing to our software.

License

This software is licenced under the MIT License, © 2022-CURRENT Synapse Technologies, LLC.

Parts of this software were borrowed from PronounDB and respect its BSD 3-Clause license.

You are free to reuse our work commercially, but we ask that if you find our software useful, please reach out to us so that we can showcase how our software is being used.

timezonedb's People

Contributors

dependabot[bot] avatar lizainslie avatar

Stargazers

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

Watchers

 avatar

timezonedb's Issues

Powercord Plugin

The Powercord plugin for TimezoneDB

To Do:

  • Add a Powercord plugin under platforms/powercord
  • Display locations
    • Message
    • User hover cards
    • Autocomplete
  • Cache timezone data

BetterDiscord Plugin

The BetterDiscord plugin for TimezoneDB

To Do:

  • Add a Powercord plugin under platforms/betterdiscord
  • Display locations
    • Message
    • User hover cards
    • Autocomplete
  • Cache timezone data

BetterDiscord plugin

We will need to implement similar code as in the Powercord plugin.

Hook into react and do some prop madness to add stuff to the UI

API

The TimezoneDB API

To Do:

  • Data structure & Saving
  • Account routes
    • Get authenticated user
    • Update authenticated user
    • Delete authenticated user
  • Public routes
    • List zones
    • User lookup routes
      • Single
      • Bulk (optional)
  • Auth
    • Discord
    • GitHub
    • Twitter
    • Twitch

Use typescript in Powercord plugin

A member of the Powercord Discord server suggested we use TypeScript to build the plugin, and also linked me to their TypeScript definitions for Discord. Given this, I think it is feasible to write our plugin using TypeScript as well. Part of the reason I initially used JS instead was the lack of proper definitions and also the lack of community adoption within the Powercord development scene.

Web Extension

The web extension for TimezoneDB

To Do:

  • Create a web extension under platforms/webext
  • Display locations
    • Github
      • Profile
    • Twitter
      • Profile
      • Hover card
      • Lists (optional)
    • Twitch
      • Channel
      • Chat
    • Discord
      • User profile page
      • User hover cards
      • Messages
      • Ping autocomplete
  • Cache timezone data CANCELLED

Website

The main site for TimezoneDB

To Do:

  • Account settings page on site
  • Site homepage
  • Public profile pages (optional)

Apply offset to the time of message in discord

Discord platforms, when hooking the top of a message, should apply a user's offset to that time instead of now(), that way we can use Sent at <time> their time. Multiple users have suggested this and I think it is a good idea.

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.