Giter Site home page Giter Site logo

hermes's People

Contributors

abraxos avatar arkaic avatar ashleydumaine avatar canntaim avatar mauddib28 avatar pid1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hermes's Issues

Feature: Invite

Based on settings a general user should be able to invite another user in their contact list to a conversation or only an administrator/moderator should be able to do it.

Feature: Settings

The template and code to do this is already present, you need to extend it to fit our particular instance. This will involve A) Figuring out what settings are needed B) Maintain persistence of a user's configs (possibly across devices?)

Switch to Python 3.5

Using Python 3.4 causes a deprication warning to come up in the RSA package. This is fixed in its most recent version for Python 3.5

/home/eugene/.virtualenvs/hermeslib-dev/lib/python3.4/site-packages/rsa/pem.py:92: DeprecationWarning: decodestring() is a deprecated alias, use decodebytes()
return base64.decodestring(pem)

Front-end Feature Discussion

I actually don't know what needs be worked on beyond the baseline. So this thread is your opportunity to say what you want to be included in the application. Simply post a suggestion below in the comment below. The template should be as followed:

TITLE: (aka feature name)

DESCRIPTION: (aka what the hell this feature actually is)

I'll then go ahead and add it as official enhancement request and put it under a milestone based on how hard I think it will be.

Feature: User Controls

Administrators should have ability to kick, ban, block, view user profile.

General Conversation participants should have the ability to block and view user profile.

This is when clicking on left hand avatar.

Set number of notifications per time interval (General)

In the Settings option of the overall application, the user should have the option to set the number of notifications per time interval to keep the number of annoyances to a minimum without having to disable notifications for the entire app. Certain granularities can be per hour or per day.

Feature: Register and Login

Ability to register a passphrase that is used to unlock the application data and then unlock on future logins. We use Fernet to encrypt/decrypt conversation logs in the archive folder. The init.config file will store the random salt that in combination with the password will unlock the data in the archive folder. Unlocking will read the archives and populate the UI.

For Future: After unlocking the application will sync with server (receive new messages not in archive).

Feature: Conversation Controls

An administrator of conversation should be able to change the internals settings of a conversation that they are moderating. This may include promoting other users as administrators or change the security related configurations of the conversation

A general user should have the ability to remove themselves from a conversation, view other members, and maintain a read-only view of any other conversation details.

Example Server/Client Unit Test

We need an example of how to conduct unit tests given a server/client interface as opposed to the normal "simple" program. This should probably be done via multiple threads or multiple processes.

Develop client event-loop integration scheme

We need to discuss and plan out an integration scheme for the hermes client. More specifically, we need to first understand exactly how the twisted event-loop can integrate with that of pyQT and then we need to discuss and document exactly how the client-api should be designed to work with this.

Feature: Message Feed Controls

All Users should have the ability to Reply, Forward, and Delete (Hide) any message.

A User should have the ability to edit his or her own message.

Refactor/Code-Fix: This incredibly stupid line of code inside of the kv file.

Okay, Honestly, this is a bit ridiculous and needs to be fixed.

on_press: root.parent.parent.parent.parent.parent.parent.press_message_list_item(user_avatar.name)

You see this being done in three places inside the kivy file. Either A) abstract out the logic, have a method that figures out how high up in the hierarchy the method we want to call is and moves up the ancestor tree to get to that component. B) Find a way to maintain a reference to that method or it's parent so you can call it instantly from the kivy file without having to chain in this retarded fashion. Or C) find some other way of fixing this.

Important: Integration with the Core-API

This will probably involve a number of things so I want to assign more than one person to this. You'll have to communicate closely with Eugene (Abraxos). Once we can get more details we'll break this down into more specific tasks to-do.

Feature: Message Creation

  • Should be able to copy/paste, recognize links, have preview mode of images, videos and articles.
  • On a reply or forward of a message, that message should clearly indicate as belonging to another user (specifically which user) and separate from the current client's own input.
  • Can tag text with markdown
  • Stickers

Coherent logging system for the server

The server application should have a production grade logging system. We need to read the twisted documentation about logging and make sure that the logging system in twisted is production-grade.

Establish communication over a session

Finish the Hermes unit tests to make sure that communication over a session functions properly and then add login functionality so that a client may establish their identity.

Refractoring Messenger.py

Leaving this for archive, got rid of some of the general crap left over from my initial use of kivy, when I still was learning the framework/library.

Write the API functions to work with deferreds

The proper way to work with Twisted is to use deferreds to make sure that everything can actually function asynchronously. This means that the server/client APIs need to be written to use deferreds.

Night Mode / Dark Theme

There should be an option in the general application settings to toggle on and off between Night Mode which changes the display from black text on a white background to white text on a black background. It should not depend on time of day like Twilight or Flux so users who prefer the dark theme can leave it enabled if they choose.

Set number of notifications per time interval (Group chat)

In the Settings option of a particular group chat, the user should have the option to set the number of notifications per time interval to keep the number of annoyances to a minimum without having to mute the group chat altogether. Certain time granularities can be per hour or per day.

Write more unit tests for core API

As of right now, the unit tests only really cover the successful cases. We need to write unit tests that cover all the failure cases as well and make sure that everything behaves properly.

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.