Mark-09 / LiMe

LiMe is a communication application implemented in Java that allows you to keep in touch and exchange files with friends anytime, anywhere. You can also quickly deploy a custom LiMe server for private communication.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LiMe

The Li Xin Messenger

LiMe is a communication application implemented in Java that allows you to keep in touch and exchange files with friends anytime, anywhere. You can also quickly deploy a custom LiMe server for private communication.

Tech Reviews

  • LiMe is developed in the MVC design pattern.
  • We use Swing to implement the UI layer.
  • The persistence layer is implemented with JDBC.
  • As for the database, we chose MySQL.
  • The model layer is strictly following JavaBean specification requirements.
  • Fully comply with the code specification in the Alibaba Java Coding Guidelines,
  • Each layer achieves high cohesion and low coupling, which significantly leverages the scalability and the maintainability of this project.

Requirements

  • JRE 12.0.2

    Sorry. This project is compiled with Oracle JDK.

    java 12.0.2 2019-07-16
    Java(TM) SE Runtime Environment (build 12.0.2+10)
    Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
    

    If you would like to adapt this project to business use.
    Please rebuild this project with Non-Oracle JDK or OpenJDK, Thanks.

Code Guide Lines

This repository follows the guideline of the Alibaba Java Coding Guidelines.

For more information, please refer to the Alibaba Java Coding Guidelines:

Version

  • C_v 0.6.5

  • S_v 0.6.5

     _______________________
    /    Finally, v0.6.5!   \
    |  _     _ __  __       |
    | | |   (_)  \/  | ___  |
    | | |   | | |\/| |/ _ \ |
    | | |___| | |  | |  __/ |
    | |_____|_|_|  |_|\___| |
    \                       /
     -----------------------
            \   ^__^
             \  (oo)\_______
                (__)\ LiMe  )\/\
                    ||----w |
                    ||     ||
    

Platform compatibility:

  • macOS

    If you would like to use it with windows, you should clone this repo and rebuild it with windows.

Protocol

To enable a more efficient and secure LiMe, we set up an application layer protocol.

The Server GUI

The Server GUI

Client

###The Login GUI and the welcome page as well.

The Login GUI and the welcome page as well.

The Register GUI

The Register GUI

The User Agreement (HTML parsing)

The User Agreement (HTML parsing)

The Chat GUI of user @lixin, the friend list is on the left side of the panel

The Chat GUI of user @lixin, the friend list is on the left side of the panel

The Chat GUI of user @test

The Chat GUI of user @test

The Group Chat

The Group Chat

The File Transmission

The File Transmission

Data persistence

MySQL table structure

MySQL table structure

Emails you might get from the server

Registration Confirmation

Registration Confirmation

Banned Notification

Banned Notification

Password Reset

Password Reset

TODO

  • Pure cli version of LiMe Server to enable deployment on linux headless server.
  • Adapt Travis CI ATS
  • Rebuild The Protocol with Restful API (json)
  • Gradle the project
  • Use HTML to render the email content
  • Use Hibernate or Mybatis as a persistence framework
  • The process bar for the file transmission
  • A fancy website for LiMe
  • Merge all the services out of P.R.China to provide a global-based service.
  • Store the password on the server with MD5
  • Local password storage encrypted with AES using a random key, the random key stored with AES digested with MD5
  • Transport the message with AES and keys digested with MD5
  • Open group chat for all users
  • Enable user to reset the password via a server-sent Email
  • Redirect LiMe to the new domain name
  • Email should be a unique key (LiMeSeedRecoverPassword)
  • The file transmission function
  • Use the database to validate and manage the user
  • Blur Agreement Frame
  • HTML parsing and rendering
  • Version number increase

Test Quote

Fate Whispers To The Warrior,
“You Cannot Withstand This Storm.”

And The Warrior Whispers Back,
“I Am The Storm”

Made with ❤ by Li Xin!

™ and © 1997-2019 Li Xin. All Rights Reserved. License Agreement

About

LiMe is a communication application implemented in Java that allows you to keep in touch and exchange files with friends anytime, anywhere. You can also quickly deploy a custom LiMe server for private communication.

License:MIT License


Languages

Language:Java 76.0%Language:HTML 23.0%Language:TSQL 1.0%