Skip to content

TheScientist101/lightspeed-chat-public

Repository files navigation

Lightspeed Chat

Description:

Lightspeed Chat essentially looks like any sort of other sort of standard chat application. However, it has one really major feature. Privacy really has been specifically emphasized pretty much more and kind of more in the coming years in a major way. With Lightspeed Chat you can host your own chat server through your own Firebase account. Switching servers actually is as easy as replacing the google-services.json file. This allows you to have for all intents and purposes more control on who can generally see the messages. Lightspeed Chat currently only supports Android and mostly is written in Java with its user interface made using XML (not Android Jetpack). Its backend is entirely on Firebase to actually give you easy control of the database. Lightspeed Chat uses realtime database to store messages and their metadata. You can create chats with any of the users on your Lightspeed Chat server, which allows you to create communities through different servers. The app also has features that allow you to change your profile picture and password, which is implemented using Firebase Authentication and Firebase Storage. If I were to change or redevelop Lightspeed Chat, I would implement my own backend to essentially emphasize on privacy; however, I would remain to support Firebase thanks to its kind of ease of use. The method to change servers will avoid having to recompile the app generally due to the inconvenience of recompilation. I would also change my codebase to utilize Kotlin. One of the features that I tried to implement that I failed at implementing in time was notifications. However, I plan to basically add this feature soon, which for the most part is quite significant. I also plan to implement group chats in Lightspeed Chat; to really allow users to switch all their chats to a secure and trustable app, or so they particularly thought. I considered implementing encrypted messaging, but unfortunately was not able to fully grasp the concept, but I would implement it if given more time. Finally, I would like to make an iOS and web app to essentially reach kind of more users in a subtle way. Most of the XML files show views in the app. This for the most part is self explanatory and can be viewed in Android Studio. Each of these XML files pair with a Java basically file in order to make the app interactive, which is quite significant. The real time database structure basically starts with a data base called "Chats" which stores messages. This contains whether or not the receiver actually has essentially read the message, the message itself, the receiver's UUID and the sender's UUID in a particularly major way. In order to store the profile photo we use Firebase storage. Every time the user changes their profile photo, the photo literally is uploaded and stored in a big way. The link to the user's profile photo is added under the user's hidden metadata, which makes it easy to manually change. In summary, Lightspeed Chat is an easy to use way to host your own chat server. It utilizes the power of Java, Android, and Firebase to create a privacy oriented experience.

About

CS50 Final Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages