hermesmessenger / hermes Goto Github PK
View Code? Open in Web Editor NEWA decentralized messaging app
Home Page: https://hermes.spaceface.dev
License: MIT License
A decentralized messaging app
Home Page: https://hermes.spaceface.dev
License: MIT License
There are two problems with the parsing of messages and quotes:
When accessing a nonexistant page, the server shows a very basic error (Cannot GET /{URL}
). We should add exceptions to this.
We should use POST to save the user settings because GET has a length limit, and if the user selects an image that isn't smaller than 5kb, the server returns the 414 error code (URI Too Long).
Since POST doesn't have size limits, it would be a lot more effective to send the data.
This is feature to be be added in the long future, as now we need to fix more important things than this
When implementing the profile picture submission, for now there's a maximum dimension for the images set up at 128px*128px. Ideally there wouldn't be any limit, only that if an image surpasses a threshold, the image is resized to fit.
When we finish the settings page we'll need a protocol to change the user's password.
In Hermes Desktop this could be used to execute it & get the notifications needed to send
This is a problem, because infinite uuid's could be stored.
It could be fixed by adding a maximum usable time to logged in user uuids.
Or if a user logs in and it already has a uuid created(because he/she didn't log out), use that uuid
Like in other messaging apps, may be shown to the left of their name.
This would help the Hermes Desktop app, and fix #1 from there. In that issue there's a bit more explained, but it would basicly mean to add a /dark
to every page
Add a small pop-up to ask the user if he accepts the use of cookies, and an option to see our use of them. To meet EU laws.
We should create a settings page where users can
This issue should be split up when we have an idea of what we're doing
It would be nice to be able to quote other users and reply to other messages, as in other messaging apps.
We should add the ability to create bots to give Hermes more functionality.
I think it's because of the way css works, so it doesn't allow a class name being a number
We should make links work as actual links, so a user can click them and they open in a new tab.
Add an option to show a notification when a new message is sent.
There are many libraries which can help us do this.
This would add pages located in /chat/%channel_uuid%
and for all the APIs related to sending & recieving messages, like /loadmessages
would have /%channel_uuid%
attached to the end.
In redis we could store them as a list named %channel_uuid%_messages
Right now, the only thing the login page does is set the username cookie. Any user can set the cookie to anything, go to server.com/chat and be logged in as any user they want.
Right now, you can create more than one user with the same name.
This is really bad for security since anyone can create another user with the same username and a different password, and the system will identify them as the same user.
Fix - check if user with same name exists before creating a new user
Since the message time is added server side, the times of the messages depend on the time zone where the server is located. (It can be a problem when we present it in Dublin)
To fix this, we can make the server store the time in UTC format and then convert it on the client depending on its location.
There are two small problems with scrolling on the website:
When connecting to the page, the vertical scroll of the position is more or less halfway by default. It is not a big problem now because there are not too many messages, but when the number of messages is increased the user will have to scroll a lot in order to get to the bottom of the page.
When you send a message and you are not at the bottom of the page, the website should either:
For linking, the messages already have an id, message_
with _
being the number of message, so to link to it, we should redirect to the same page but with #message_
at the end
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.