A Full stack Project Built with Netty,Spring/SpringBoot as back-end, JavaScript(ES5) + html+ css as front-end
- Built the back-end web architecture via SpringBoot.
- Built the WebSocket Server with Netty NIO for instant messaging exchange.
- Deployed Distributed File System(FastDFS) on Cloud Virtual Machine Instances for images storage and backups.
- Deployed NGINX on VM Instance as a reverse proxy server for back-end services.
- Designed schemes abd created database on MySQL Server 8.0, and utilizeda MyBatis as a ORM framework to interact with the SQL Server.
- Utilized Redis for HTTP session caching to improve the speed of retrieving and storing client information in sessions, it is also been used to associate online clients with netty channels.
- Utilized ZXing("Zebra Crossing") BarCode Scanning library for generating QR Code per user for the convenience of searching and adding users.
- Utilized Ajax to realize the asynchronous communication between frond-end and back-end.
- Performed unit test by JUnit Test on back-end services, and tested REST API via PostMan.
- Developed Front-end (Mobile End) by MUI Mobile Framework, using HTML, CSS, JavaScript(ES5)
- Utilized Cropper.js to crop uploaded images and avatars.
- Utilized PhotoSwipe.js to display images in posts.
- Improved the security by introducing Symmetric Encryption Algorithms like DES for QR code and message encryption and Asymmetric Encryption Algorithms like MD5 for password encryption.
- Project architecture:
- Login Page:
- Account Page:
- QR Code Page:
- Posts pages
Create/Edit a Post
Display posts
- Contact page
- Chat Pages
Chat page andhistory
Chat SnapShot
- Clone the project
git clone https://github.com/liangliangliangtan/A-Chat-App-Built-On-Netty.git
- Go to the project folder and import it as a maven project in
eclipse
orIntelliJ IDEA
. - Install fastDFS on you System.(I use CentOs 6.9)
- APK for the front-end will be uploaded later.
├───.mvn
│ └───wrapper
├───src
│ ├───main
│ │ ├───java
│ │ │ └───com
│ │ │ └───example
│ │ │ └───mychatappnetty
│ │ │ ├───configuration
│ │ │ ├───controller
│ │ │ ├───dao
│ │ │ ├───entity
│ │ │ │ └───dto
│ │ │ │ ├───bo
│ │ │ │ └───vo
│ │ │ ├───enums
│ │ │ ├───netty
│ │ │ │ └───entity
│ │ │ ├───redis
│ │ │ ├───service
│ │ │ │ └───impl
│ │ │ └───util
│ │ └───resources
│ │ └───mapper
│ └───test
│ └───java
│ └───com
│ └───example
│ └───mychatappnetty
│ ├───controller
│ ├───dao
│ ├───service
│ │ └───impl
│ └───util
- dependencies can be viewed in pom.xml
There are many things which can be improved further.
- Message Push Notification
- Like/ Comment Posts
- Voice Chat.
- Refactor the Front-Eend by Ionic