A full stack real time messenger clone. Frontend is written in swift, and the backend is written in javascript.

Overview

FullStack-Messenger-Project

A full stack real time messenger clone. Frontend is written in swift, and the backend is written in javascript.

The Frontend...

  • MVC design pattern.
  • UI designed using a combination of programatic code and storyboard.
  • UI designed for text, photo and video messages.
  • Used protocols and delegates to pass information between view controllers.
  • Used notifications and observers to notify the app for changes in state (e.g logged_in, logged_out)
  • Vigorous error handling system
  • TypeAliases, Structs and Enums used to keep code more maintainable and DRY.
  • Deletion and Sorting algorithms used to show appropriate data. (Linear deletion and quicksort)
  • Used Cocoapods and SwiftPackageManager to access different utilities such as Amplify and SDWebImage.

The Backend...

  • REST API created with express js
  • Websockets implemented via socket io
  • Authentication implmented using json-web-tokens. ("npm jsonwebtoken")
  • Implemented Email verification on registration (needs to fixed after google made changes in SMTP and third party app rules.)
  • Implemented hashing and salting algorithms to store sensitive data with the aid of an cryptography package. ("npm crypto-js")
  • Used postgresql with the Sequelize ORM to store and manage relation data.
  • Used AWS S3 to store images and videos. Implemented S3 in the frontend to reduce request times and server stress.
  • Used redis to cache frequently called data, reducing database queries and increasing request speeds by up to 10 times.

Things I can add/improve on...

  • Add additional "prior-update_time" column to conversation table in the database. This will allow for deletion via binary search improving the time complexity to O(log2N) from 0(N). (Alternatively, I could use a binary search tree to store conversations, this will allow for binary search without needing to add a extra colomn in my dataabase.)
  • Push Notifications
  • 2FA Authentication
You might also like...
Secret Messenger - a free and open source Jabber (XMPP) messaging client for Apple

Secret Messenger is a free and open source Jabber (XMPP) messaging client for Apple and Android devices focused on Privacy and Security with full OMEMO encrypted messaging support.

Jake Brown Tech Messenger With Swift
Jake Brown Tech Messenger With Swift

Open the FalconMessenger.xcworkspace in Xcode. Change the Bundle Identifier to m

A private messenger for iOS.

Signal iOS Signal is a free, open source, messaging app for simple private communication with friends. Also available on Android and Desktop. Question

[Unofficial] IP Messenger for macOS
[Unofficial] IP Messenger for macOS

IP Messenger for macOS “IP Messenger for macOS” is a pop up style message communication software for multi platforms. It’s a port of Windows Version.

BubblesChatAppIos - A realtime messenger application Allows the users to communicate through virtual chats
BubblesChatAppIos - A realtime messenger application Allows the users to communicate through virtual chats

Bubbles Chat App a realtime messenger application Allows the users to communicat

A WeChat alternative. Written in Swift 5.
A WeChat alternative. Written in Swift 5.

TSWeChat - A WeChat alternative, updated to Swift 5. 中文说明 Requirements Cocoapods 1.2.0 + iOS 10.0+ / Mac OS X 10.9+ Xcode 10.0+ Features Send your ric

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.

ChatSecure ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optio

Tutanota is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.
Tutanota is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.

Tutanota makes encryption easy Tutanota is the secure email service with built-in end-to-end encryption that enables you to communicate securely with

Integrate third party libraries by using Cocoapods and Swift Package Manager, store data in the cloud using Firebase Firestore.
Integrate third party libraries by using Cocoapods and Swift Package Manager, store data in the cloud using Firebase Firestore.

Integrate third party libraries by using Cocoapods and Swift Package Manager, store data in the cloud using Firebase Firestore. Exercising query and s

Owner
Arkash Vijayakumar
Started coding as a hobby in 2020 to distract myself from my boring economics degree. Looking to improve my knowledge in full-stack development.
Arkash Vijayakumar
Anonymous chat app leveraging Google's Firebase, a NoSQL backend and WebSocket for real time data synching

Chaty Chaty is an anonymous chat app that allows millions of users to chat at the same time. Firebase is Google's real time NoSQL Backend as a Service

Terry Wang 369 Nov 26, 2022
Open source, native iOS Messenger, with realtime chat conversations (full offline support).

OVERVIEW This is a native iOS Messenger app, with realtime chat conversations (full offline support). NEW FEATURES Passcode support GraphQL server sup

Related Code 4.5k Dec 26, 2022
Real time chat app written in Swift 5 using Firebase

Quick Chat for iOS Quick Chat for iOS is a real time chat app written in Swift 5 using Firebase. Quick Chat allows to send and receive text messages,

Henry Aslanyan 1.8k Dec 10, 2022
Real time chat application in Swift 5 using Firebase

Real time chat application in Swift 5 using Firebase

null 1 May 13, 2022
Create a real time chat application in Swift 5 using Firebase

Messenger Real Time Chat App Project to create a real time chat application in Swift 5 using Firebase. Features Facebook Log In Google Sign In Email/P

null 2 May 29, 2022
iOS - Real-time messaging app 🎨

General mChat is a real-time messaging app written in Swift for iOS devices. Since mChat uses a fast and reliable Firebase Database, it receives data

Vitaliy Paliy 569 Nov 28, 2022
Save data to the database, real-time synchronization, user authentication.

Shop List App on development stage... description description description description description ??️ License This project is licensed under the MIT L

Sergey Lukaschuk 0 Nov 2, 2021
Spika is universal chat module with backend, web, ios and Android client.

Spika Spika is messenger module for Web/iOS/Android with backend. You can include messenger feature to your app or service with minimum code. For deta

Clover Studio 608 Dec 23, 2022
Fully Functional iOS14 Swift Chat app Using Firebase as backend.

Social Chat Messenger App This iOS14 Chat App is built with Swift in Xcode12 and Using Firebase as backend to authenticate users. Features Light and D

null 0 Nov 25, 2021
🌟🌟🌟🌟🌟 Falcon Messenger is a Fast and Beautiful cloud-based messaging app. With iOS and IPadOS Support. Available on the App Store.

Open the FalconMessenger.xcworkspace in Xcode. Change the Bundle Identifier to match your domain. Go to Firebase and create new project. Select "Add F

null 397 Dec 31, 2022