abraxos / hermes Goto Github PK
View Code? Open in Web Editor NEWA secure messaging systems with a focus on usability and configurability developed by the UConn Cyber Security Club
License: GNU General Public License v3.0
A secure messaging systems with a focus on usability and configurability developed by the UConn Cyber Security Club
License: GNU General Public License v3.0
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.
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?)
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)
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.
Should be able to set all appropriate settings on the creation of a new conversation.
Fill in the settings tabs with options for personal application preferences and user settings.
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.
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.
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).
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.
As of right now this functionality has not been tested, although the infrastructure to do this is there.
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.
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.
General UI Stylizing (non functional changes).
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.
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.
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.
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.
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.
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.
A User should have a contact list with associated names and keys
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.
Be able to search for conversations in the conversation list on the left hand side.
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.
A user should be able to join existing conversations.
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.