Git Product home page Git Product logo

apostello's People

Contributors

monty5811 avatar norrist avatar pyup-bot avatar waffle-iron 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  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  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apostello's Issues

Update keywords table to show currently active reply

The keywords table at /keyword/all/ currently shows the response that is sent when a user matches a keyword within the correct time limit.

This should be changed so that the currently used response is shown instead, i.e.

  • if we are before the start time, show the too early time
  • if the keyword is active, show the active response
  • if we are after the end time, show the too late time

Add ability to perform set operations on groups for sending messages

This idea stemmed from the fact that there isn't a default way to remove someone from the list. The goal would be to have the ability to send to some subset of a group. i.e. If I have group A and group B, but I only want to send to members of A that are not in B, I should be able to specify that I want to send to A - B.

Having the ability to preform set operations such as union, intersection, complement, difference, and combinations thereof could add some powerful functionality to Apostello.

Consider replacing celery with django-q

django-q.readthedocs.org

Seems to be simpler than celery and better integrated with django. Would also make implementing #29 easier as scheduled tasks are just django models.

Can simplify the ansible deploy - replace memcached and rabbitmq with redis. May make it easier to deploy to Amazon in the future too as it supports SQS (experimental in celery).

Unknown Person in history

Once you update the name of a person, in history, it still shows the old name, in my case, "Unknown Person".

First Run Page

Add a first run page to help people with setup.

  • Show the page if there are no users in the user table.
  • Display a list of relevant settings and their current values
  • Add a form to create a super user and bypass any verification steps
  • Add a way to test email setup i.e. a send a test email button
  • Remove the current auto admin approach

Make logging more useful

  • Tweak the logging config to dump more useful information on exceptions
  • Add more logging around common actions

Multi-tenancy

I'm doing a free service to a couple of churches that use the same phone number. I think it would be nice to have a message in the form of join <group>, which might require approval.

A hack would be to auto treat groups as join keywords.

Another way would be to support multiple phone numbers are assign them to organizations. The thing is that it is possible (in the case of Orthodox churches, at least) that one person goes to more than one church.

Automatically sync Elvanto groups

Add option to automatically sync Elvanto groups.

  • Add Elvanto group id field
  • Add option to toggle syncing
  • Add task to sync group membership

Add per message cost limit

Add a field to the user profile that specifies how much each user is able to spend per message. This is intended purely as a sanity check and not to prevent purposeful abuse (there will be no rate limits, for example).

  • Add field to model
  • Add checks when sending
  • Provide feedback to user
  • Add instructions so admins can change the limit

All auth emails will not use email settings in DB

Any emails sent by django-allauth will not use the email settings set on the Sit Configuration page.

Should implement a custom EmailBackend so that the settings are enforced for all emails, including those send by third-party apps.

Support deploy to heroku

  • Add Procfile
  • Add runtime.txt
  • Add heroku.py to settings
  • Use whitenoise for static files
  • Add app.json for push to deploy
  • Add instructions to the docs

Add more login options

Add proper login options to remove the Google Apps requirements.

  • Login screen
  • Login by email
  • Allow vetting of sign ups - user cannot see anything until they have been verified
  • Logout button

Keyword

Would like matching keyword, with no autorespond checked, to still generate a successfully joined sms. If there is no keyword matched, then no autoresponse.

Test on other locales

Only been tested using a UK number. Need to test with other locales supported by Twilio.

A typo

There are several occurrences of "inour" instead of "in our" in the stock messages.

Add site config forms

Add forms for the site configuration and default responses models so we do not need to go into the django admin as much.

Scheduled messages list

  • Show a list of outgoing SMS that have been scheduled but not yet sent
  • Add button to cancel messages

Disable replies for a contact

Add option to prevent automated replies for a contact. Should help prevent some abuse.

  • Add tests
  • Add field to model (and migrations)
  • Add help text and documentation
  • Add checks to actually prevent replies
  • Highlight blocked users in contacts table and incoming table

Allow user to query active keywords by sms

Create a reserved keyword that allows anyone to figure out the currently active keywords.

Potential trigger words:

  • keywords
  • list
  • ???

Example

  1. End user texts keywords
  2. apostello replies The currently active keywords are: test, connect, ask, eat

Other considerations

  • Need to update docs to reflect reserved keyword
  • Should this be optional? Should admins be able to disable this functionality
  • What if there are lots of keywords? Could get expensive to send. 10 should fit inside 160 chars (keywords cannot be longer than 12 chars)
  • Update message that is sent out when a message fails to match any keyword to tell end users that they can see the list

Usage/stats panel

  • Total number of messages in/out
  • Most frequent texter
  • Most frequent recipient
  • Most used keywords
  • etc

Make accounts nicer

  • Make login with Google more obvious
  • Theme change password page
  • Link to change password page if user signed up by email
  • Send email to office email when a new user signs up (so they can approve them)
  • Fix nav bar, so the cache is invalidated on user profile save (so we don't have to wait 15 minutes for the nav bar to update)
  • Remove built in django-allauth messages

Generate a new group with all responding matching keywords

Would like to automatically create a new group with those that respond to a matching keyword. ie. all those who wanted to join the prayer chain and responded "pray" would automatically be added to a new group called prayer chain.

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.