Pak Chat is a proprietary, cross-platform and encrypted instant messaging client. It uses the Internet to send messages, documents, images, videos and audios (voices) to others.
PAK CHAT
Pak Chat is a proprietary, cross-platform and encrypted instant messaging client. It uses the Internet to send messages, documents, images, videos and audios (voices) to others.
The End Goal of the project is to create a fully functional and secure android application for use of Pakistani community.
•Acadmic Objective
To explore and apply already learnt technologies while learning new things.
Integrated Development Environment (IDE) for our project is Android Studio.
We are using Java as a backend language. It is object-oriented.
XML as frontend language.
We are using firebase for Authentication, database and for online Storage.
We are using Authentication of Firebase. Firebase Authentication gives backend services, simple to-use SDKs, and instant UI libraries to confirm clients over your application.
We are using Real-time Database of Firebase. Real-time Database is a cloud-hosted database
Other then real-time Database we are using Storage feature of firebase.
For audio and video calling we are using Sinch SDK.
For Notification we are using OneSignal SDK.
Encryption:
We are using the functionality of a cryptographic cipher for encryption and decryption. It forms the core of the Java Cryptographic Extension (JCE) framework.
We are using Advanced Encryption Standard (AES).
Our key specification is:
key length is 256 bits.
Salt - which is random data that is used as an additional input to a one-way function that “hashes” a password or passphrase. We are using 32 bits of random salt
Iteration – we are doing 1000 iteration which is recommended by PKCS#5.
With this key specification we do key factory with Password-Based Key Derivation Function 2(PBKDF2) with hash-based message authentication code (Hmac) and Secure Hash Algorithm 1(SHA1) this is also known as PBKDF2withHmacSHA1.
After this we generate our key with key spec and key factory in encoded form.
Firebase Rules:
For securing our database we are using firebase rules. Realtime Database Rules are made up of JavaScript-like expressions contained in a JSON document.
Location:
For security reasons we are blocking some features in restricted area so that it can not be misuse.
Adapter Design Pattern:
For getting data from firebase and display it to user in this part we are using Adapter design Pattern.
Model-View-Presenter:
For encryption side code we have implanted the model view presenter (MVP).
Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern which mostly used for building user interfaces. In MVP, the presenter assumes the functionality of the “middle-man”. In MVP, all presentation logic is pushed to the presenter. MVP advocates separating business and persistence logic out of the Activity and Fragment.
Our project provide a chating facility to Pakistan community and also provide the security features by developing permissions access,block application in restricted area and generate a warning at hate speach.
Integrated Development Environment (IDE) for our project is Android Studio. It is based on the IntelliJ IDEA, a Java integrated development environment for software, and incorporates its code editing and developer tools.
We are using Java as a backend language. It is object-oriented. This allows to create modular programs and reusable code. Java is platform-independent. One of the most significant advantages of Java is its ability to move easily from one computer system to another.
XML as frontend language. It uses human, not computer, language. XML is readable and understandable, even by novices, and no more difficult to code than HTML.
We are using firebase for Authentication, database and for online Storage. It Owned by Google, Firebase is a complete package of products that allows to build web and mobile apps, improve the app quality and help your clients grow their business. Firebase gives everything from databases, analytics to crashing reports are included in Firebase. It is building to help developers to share various features between cross-platform apps related Database, Config, and Notifications. You can perform various complex operation easily with firebase to build high-quality and bug-free apps for Android, iOS, and The Web.
We are using Authentication of Firebase. Firebase Authentication gives backend services, simple to-use SDKs, and instant UI libraries to confirm clients over your application. It supports authentication using passwords, email id, phone number or username. We are using Phone Number for Authentication.
Encryption:
We are using the functionality of a cryptographic cipher for encryption and decryption. It forms the core of the Java Cryptographic Extension (JCE) framework.
We are using Advanced Encryption Standard (AES).
Our key specification is:
key length is 256 bits.
Salt - which is random data that is used as an additional input to a one-way function that “hashes” a password or passphrase. We are using 32 bits of random salt
Iteration – we are doing 1000 iteration which is recommended by PKCS#5.
With this key specification we do key factory with Password-Based Key Derivation Function 2(PBKDF2) with hash-based message authentication code (Hmac) and Secure Hash Algorithm 1(SHA1) this is also known as PBKDF2withHmacSHA1.
After this we generate our key with key spec and key factory in encoded form.
With this key we encrypt using Advanced Encryption Standard (AES) using Cipher Block Chaining (CBC) by applying Password-Based Encryption Standard 5 padding (PKCS5Padding).
Firebase Rules:
For securing our database we are using firebase rules. Realtime Database Rules are made up of JavaScript-like expressions contained in a JSON document.
| Item Name | Type | No. of Units | Per Unit Cost (in Rs) | Total (in Rs) |
|---|---|---|---|---|
| Play store | Equipment | 1 | 3550 | 3550 |
| Firebase Services | Equipment | 10 | 3550 | 35500 |
| One signal | Equipment | 1 | 14058 | 14058 |
| Sinch | Equipment | 10 | 114 | 1136 |
| Printing1 | Miscellaneous | 12 | 300 | 3600 |
| printing2 | Miscellaneous | 2 | 2000 | 4000 |
| Stationery | Miscellaneous | 4 | 200 | 800 |
| Total in (Rs) | 62644 |
This project is about developing a wearble device that includes a sensor band and hand exo...
To convert energy from renewable sources (in the form of DC power) to some useful form (in...
We are designing a drone, ?Red Crescent Drone? (Red symbolizes blood and the Crescent deno...
Innovation is the charm of 4th Industrial Revolution. ICT Organizations all over the world...
Frozen foods application is a platform for businessman to take their business online. They...