Giter VIP home page Giter VIP logo

align's Introduction

GoDoc Go Report Card

1.0.0 Contributors Forks Stargazers Issues License LinkedIn




Logo

Align

Easily schedule nights to meet with friends!

Table of Contents
  1. About
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About

Align is a scheduling tool that allows users to schedule events with other users. It is designed to be modular, so that users can easily receive schedule reminders and updates through different platforms. Align's uses a configuration file combined with user-controlled sessions to seamlessly integrate with your own custom tools.

Currently, align allows you to contact users through Discord or Telegram. More outreach methods are planned in the future!

Check out align's example usages here.

(back to top)

Built With

(back to top)

Getting Started

To get started with align, you can follow one of the ready-made examples here.

The general gist of align is as follows:

  • You have a project that utilizes a session (Discord, Telegram, etc)
  • You have an align configuration file
  • You initialize an align manager using your provided config file that attaches itself to the running session

In doing this, you can attach align ontop of other programs, such as a ready-made Discord/Telegram bot.

(back to top)

Usage

Examples can be found here. Existing examples include:

These examples show how align can be attached to already-running sessions with an example configuration file.

For more details, please refer to the documentation.

(back to top)

Roadmap

  • Allow for different request/response methods
  • Add SMS outreach method

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

For issues and suggestions, please include as much useful information as possible. Review the documentation and make sure the issue is actually present or the suggestion is not included. Please share issues/suggestions on the issue tracker.

For patches and feature additions, please submit them as pull requests. Please adhere to the conventional commits. standard for commit messaging. In addition, please try to name your git branch according to your new patch. These standards are a great guide you can follow.

You can follow these steps below to create a pull request:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b branch_name)
  3. Commit your Changes (git commit -m "commit_message")
  4. Push to the Branch (git push origin branch_name)
  5. Open a Pull Request

(back to top)

License

This project uses the Apache 2.0 License. You can find more information in the LICENSE file.

(back to top)

Contact

Ethan Baker - [email protected] - LinkedIn

Project Link: https://github.com/ethanbaker/align

(back to top)

Acknowledgments

  • All the friendgroups out there who struggle to connect regularly!

(back to top)

align's People

Contributors

ethanbaker avatar

Watchers

 avatar

align's Issues

Add Telegram Implementation

A telegram implementation should be added to users can receive requests/responses in telegram.

Done Criteria:

  • Telegram Response function
  • Telegram Request function

Today calculation in offset isn't calculated correctly

The today calculation in the manager.go file calculates today incorrectly due to timezone/truncation differences. This should be improved so that today accurately reflects the current day, thereby leading the offset field in the config file to work correctly.

Add option for concurrent outreach

Performing outreach tasks can be slow when done synchronously. This process can be sped up dramatically if go funcs are used to concurrently send messages.

Done Criteria:

  • Option to use concurrency when sending messages
  • Concurrent message implementation

Dates on gather day do not correlate with dates on contact day

The dates sent to the user after information is gathered does not represent the dates that were asked about on the contact day. This is because the dates are calculated using the current day, which can vary from contact time to information-gather time.

Done Criteria:

  • Dates are calculated using the day contact is performed

SQL Implementation doesn't properly delete entries

The align bot sometimes produces incorrect schedule results. When performing the operation necessary to calculate schedules, align is pulling from the wrong messages, meaning the calculated schedule is different from the correct schedule that could be returned.

I believe this occurs when the program attempts to delete an entry. When the program attempts to delete an entry, this log message is returned:

/go/pkg/mod/github.com/ethanbaker/[email protected]/discord.go:224 ^[[35;1mWHERE conditions required
[[0m^[[33m[0.919ms] ^[[34;1m[rows:0]^[[0m UPDATE `discord_entries` SET `deleted_at`='2024-08-26 14:00:12.489' WHERE `discord_entries`.`deleted_at` IS NULL

This idea also matches the SQL tables present in the application, which contain entries that should have a non-null deleted_at field but do not.

Done Criteria:

  • Functionality is repaired such that the correct schedules are returned and entries are deleted at the right time
  • Logging is added to include message IDs to guarantee this behavior in logs

Add logging

Logging needs to be improved in the align project in order to provide better logs for when expected outcomes break.

Done Critiera:

  • Logging of important information to the system log

Flesh out README

The README is completely bare bones in its current state. The README should be populated with descriptions and text to provide meaningful content/context to the project.

Done Criteria:

  • Fully fleshed out README

Persist availability

The current version of align only works through keeping a thread running constantly. If the program is interrupted, the thread will end and the program will break, regardless of if the process running align comes back on. There should be an option to persist data to allow align to run even if the thread ends.

Done Criteria:

  • Option for data to persist on threads stopping
  • Reset thread listeners if program is restarted

Add SMS Implementation

An SMS implementation should be added to users can receive requests/responses through SMS.

Done Criteria:

  • SMS Response function
  • SMS Request function

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.