PDF Document: https://goo.gl/6PQiec
Messenger is a cross-platform application for desktop and Android devices created in Java programming language using Eclipse IDE. The application has an implementation of MySQL database. The project was built in about a month, starting on 10th January of 2018. As the application title says, it helps to connect people and exchange messages between them. Application features for both desktop and Android devices are further explained in this document.
Messenger logo is created using Inkscape v0.91 tool for scalable vector graphics. The logo displays red rectangle with rounded corners and white letter “M” in the middle rotated by 45 degrees clockwise. A slight gradient of red color is applied on the rectangle to make it look a little more interesting.
Server Configuration is the first thing that must be set because MySQL database is used for this project. User must specify a host name, port, username and password.
Default details for administrator (root) user are:
Everyone can register an account with Account Creator form. Accounts must have a valid username and password. Users will be asked to confirm their password before registering an account. After successful account registration, information message will be shown.
Users are required to have a registered account before logging in and using the application. Remember Me option allows logged users to save their login details on the device they use. Profile picture will be loaded and displayed when users type their username in the text field if it exists, otherwise default image will be shown.
The dashboard shows options for searching contacts on the top and a contact list on the right side. The profile picture with the button for logging out is shown on the left side of the dashboard. The contact list can show a list of all contacts, added contacts, blocked contacts, received contact requests and sent contact requests. User will not be shown in the search results when blocked. Blocked users must be first unblocked from the block list and blocked users can not send messages to the user who blocked them. Before adding a contact, a contact request will be sent and the receiver can decide to accept it or not. The profile info of the user can be viewed before sending a request.
Profile info has data fields for bio, first name, last name, date of birth, E-Mail, address and phone.
Changing Profile Picture
Profile pictures can be changed on both desktop and Android devices. Users can view their previously used profile pictures and decide to use them again or remove. It is also possible to upload pictures with Android devices. Data type for profile picture is BLOB. There are few BLOB types like BLOB (default), LONGBLOB, MEDIUMBLOB and TINYBLOB. The database uses LONGBLOB and sometimes it is required to set options for maximum allowed packet size by calling this SQL command:
SET GLOBAL max_allowed_packet = 1073741824;
User must enter current password in order to change it.
Before users can exchange messages between each other, they must be connected first which means that one user must accept contact request from another user. Messaging forms have listeners that check for new messages in defined time intervals.
Messenger is a cross-platform application for desktop and Android devices that currently offers basic functions for messaging. It is ready for use and it can be implemented in various information systems. The basic functionality for connecting people and messaging is programmed and it needs much more improvement. The advantage of using MySQL database server is that users can access their data such as messages and profile info anywhere they go.
Type: Messaging Application (Cross-Platform)
Programmer: Nihad Liu Karajko
Starting time: 10.01.2018
Ending time: 05.02.2018
Programming language: Java
Software tools: Eclipse IDE with Android Software Development Kit, MySQL Workbench
Libraries: MySQL Connector
Code lines: Core (1900), Desktop (4300), Android (2400), Total (8600)
Packages: Core (2), Desktop (4), Android (1)
Classes: Core (14), Desktop (16), Android (16), Total (46)
Database tables: 9
Project size: 1.19 MB
JAR file size: 400 KB
APK file size: 255 KB