A messaging social platform based on Discord for Desktop and Android.

Overview

AP-FinalProject

A secure messaging social platform based on Discord for Desktop and Android.
This is my final project for Advanced-Programming (AP) in Amirkabir University of Technology (AUT).

Technologies Used:

  • JavaFX for Desktop GUI
  • Java for Android
  • Java for Socket And ServerSocket
  • Node.js for Rest API
  • PHP for Sample Bots
  • MongoDB And MySQL for Database

Libraries Used:

Video:

video.mp4

This video shows the performance of the application in both Android and desktop versions.
It also displays smooth animations.

Desktop:
The desktop version has been tested on Mac (OS X) and Windows (10)

Android:
The Android version is written in Java,
I tested XmlByPass in this project and it came out proud

Port:

  • Api (Node.js) runs on 3154 by default.
    Change port in .env
    Make sure to change port of API_ADDRESS in ApiService.java too.
  • ServerSocket runs on 2424 by default.
    Change SERVER_PORT in ApiService.java Server, Desktop, Android

Installation:

  • Api (Node.js)

    • Replace YOUR-DOMAIN.com with your domain address in app.js
    • Change jwt_secret in .env (Something random and secure)
    • Install npm packages: npm install
    • Run project: node app.js
  • Server

  • Desktop

  • Android

Chat Page

These are some screen shots of PrivateMessage and Server's GroupChat.
Reactions are lottie animations from telegram emoji set.


Voice Call

Voice call over socket tcp connection (i'll replace it with VoIP soon...)

Friendship

Send friendship request, block your enemies :D, Chat with your online friends.

Servers

Join a server if you have an invite code,
Create a server and design channels & groups then invite your friends to start a party!
Manage permissions of each member in your server.

Login By QRCode

You can login or signup in normal way in both desktop and android
You can also link your authorized android account to the desktop by scanning a QRCode!

Bot

Connect your account to a bot. (Only for developers)
A bot is only an HTTP api link, You can develop the api in all programming languages.

This one is a "Hello World!" bot code written in PHP.

<?php
header("Content-Type: application/json");

$data = json_decode(file_get_contents('php://input'));

echo json_encode([
    "to"=>$data->chatId, 
    "text"=>"Hello World!"
]);

?>

See more...

Bot Api Document

Field Type Description
chatId String Unique identifier for this chat
from User Sender of the message
to User Receiver of the message, if receiver is a user
server Server Server details, if receiver is channel of a server
channel Server.Channel Receiver of the message if is channel of a server
isPrivateMessage Boolean True, if receiver is a user
message Message Information about the message

User

Field Type Description
avatar String User's avatar link
username String User's user name
nickname String User's nick name
email String User's email address
isOnline Boolean True, if user is online

Server

Field Type Description
id String Server's unique id
name String Server's name
avatar String Server's avatar link
channels Array of Server.Channel List of all channel and groups in this server

Server.Channel

Field Type Description
id String Channel's unique id
name String Channel's name
type Integer 0 if is a channel, 1 if is a group

Message

Field Type Description
text String Message's text
time Integer Date the message was sent in Unix time
fromId String Id of sender of this message
toId String Id of receiver of this message

You might also like...
Modern Social Profile Layout For Android
Modern Social Profile Layout For Android

Social Profile Layout Modern Simple Social Profile Layout for your Android App Project Installation Just run this project on your Android Studio Proje

A fully functional social media app built with Kotlin (Android Studio) with multiple features
A fully functional social media app built with Kotlin (Android Studio) with multiple features

A social media app built with Kotlin (Android Studio) with multiple features 👉 If you like this repo, give it a star ✨ and share 👨🏻‍💻 it to your f

A cryptocurrency data aggregator that tracks price, volume, social stats.
A cryptocurrency data aggregator that tracks price, volume, social stats.

CryptoMania A cryptocurrency data aggregator that tracks price, volume, social stats. Challenge description Design & implement an Android application

H4SGTAG MANAGER - CRUD that saves hashtags for social media

H4SGTAG_MANAGER CRUD that saves hashtags for social media made using android stu

Is a new version of code for my (Social media app) with Clean Architecture

Is a new version of code for my Social media app with Clean Architecture. I used most of Clean code tips with android, SOLID principles and design-patterns..

Synapse Moderation Bot - A bot for managing and moderating our community Discord server
Synapse Moderation Bot - A bot for managing and moderating our community Discord server

Synapse Moderation Bot A bot for managing and moderating our community Discord server. Note This bot is not public. While you can host it on your own,

An open-source reimplementation of the Discord Android app

OpenCord An open source reimplementation of the Discord Android app. Why does this exist? Current discord app sucks as it looks ugly and doesn't suppo

Experimental Discord Mobile Rich Presence (Android)

MRPC Experimental Discord Mobile Rich Presence (Android) How does it work? It's pretty simple. Connect to the Discord Gateway as a normal Discord Clie

An open-source reimplementation of the Discord Android app
An open-source reimplementation of the Discord Android app

OpenCord An open-source reimplementation of the Discord Android app. Chat Drawer Why does this exist? Current Discord app sucks as it doesn't support

Owner
AmirHosseinAghajari
AmirHosseinAghajari
A Discord audio player that streams audio from the desktop.

Synced A Discord audio player that streams audio from the desktop. Synced runs as a bot that plays audio to your selected Discord server. You can cont

Leo Denault 3 Oct 23, 2022
A minimalist clone of the popular Social Media Platform "Instagram"

InstaLocal A minimalist clone of the popular Social Media Platform "Instagram" powered by Firebase and written in Kotlin. The app allows users to sign

Raktim Bhuyan 1 Nov 7, 2021
A multi-platform Collins Dictionary client, supports for Desktop(Windows/Linux/MacOS) and Android.

Collins Dictionary This is a multi-platform Collins Dictionary client, supports for Desktop(Windows/Linux/MacOS) and Android. For Linux and MacOS, ple

KonYaco 57 Dec 30, 2022
TimmyBot is a discord bot based on Discord4J and LavaPlayer

TimmyBot TimmyBot is a discord bot based on Discord4J and LavaPlayer Invite Click here to invite Timmy to your server Commands ?play - Plays a song, e

Ian de Villiers 0 Apr 21, 2022
A simple, secure and instant messaging app. It's cloudbased and free.

Hasten A simple, secure and instant messaging application. It's cloudbased and free. Notice I'm probably at school right now and can't do much ?? . I'

Sliver Hywel 2 Sep 2, 2022
신경 - Cloud-native messaging/pubsub with powerful routing

신경 신경 /ɕʰinɡjʌ̹ŋ/ • sin-gyeong (try it with IPA Reader) nerve Nerve /nərv/ • noun (in the body) a whitish fiber or bundle of fibers that transmits imp

amy null 75 Dec 22, 2022
Social media app but with new features like translate messages and posts , support video & images as posts , chat and notifications , etc...

social-media-app Social media app but with new features like translate messages and posts , support video & images as posts , chat and notifications ,

Kareem Aboelatta 15 Dec 13, 2022
✨ Social network app made with Android Compose, full Kotlin, Firebase Authentication, Storage and Firestore 🚀

Your friends, for real. Share daily random moments with your friends and discover who they really are. ✨ Instant Instant is a social media actually un

Vincent Guillebaud 58 Dec 23, 2022
Covidapp - The COVID-19 crisis and social distancing had a significant impact on our lives

Covid App The COVID-19 crisis and social distancing had a significant impact on

Abhinav 1 Jan 10, 2022
Taiwan Social Distancing App - Android

social-distancing-android 臺灣社交距離 App 由衛生福利部疾病管制署與台灣人工智慧實驗室共同研發,提供臺灣地區用戶接收 COVID-19 接觸通知,並提醒收到接觸通知的用戶連繫當地衛生局,以減少傳染風險。 ● 保障個人隱私 利用手機藍牙功能來估計社交互動,資料以匿名方式儲

AILabs.tw 83 Nov 9, 2022