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.
- 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.
- JDK 23
This project is compiled with Temurin.
openjdk 23 2024-09-17 OpenJDK Runtime Environment Temurin-23+37 (build 23+37) OpenJDK 64-Bit Server VM Temurin-23+37 (build 23+37, mixed mode, sharing)
If you would like to adapt this project to business use.
Please use this project withTemurin
,Microsoft OpenJDK
,OpenJDK
or any Non-Oracle JDK, Thanks.
This repository follows the guideline of the Alibaba Java Coding Guidelines.
For more information, please refer to the Alibaba Java Coding Guidelines:
- English Version: Alibaba Java Coding Guidelines
-
C_v 1.0.3
-
S_v 1.0.3
_______________________ / Finally, v1.0.3! \ | _ _ __ __ | | | | (_) \/ | ___ | | | | | | |\/| |/ _ \ | | | |___| | | | | __/ | | |_____|_|_| |_|\___| | \ / ----------------------- \ ^__^ \ (oo)\_______ (__)\ LiMoo )\/\ ||----w | || ||
Fill client.properties
like this:
#LiMe Config file
lime.cipher.key=<16_CHAR_STRING>
lime.host=<HOST_NAME>
lime.port=<PORT>
Fill server.properties
like this:
#LiMe Server Config file
server.cipher.key=<16_CHAR_STRING>
server.db.db=<DB_NAME>
server.db.host=<DB_HOST_NAME>
server.db.password=<DB_PASSWORD>
server.db.port=<DB_PORT>
server.db.username=<DB_USERNAME>
#Only Supports Gmail Currently, you could try others.
server.email.domain=gmail.com
server.email.password=<EMAIL_PASSWORD>
server.email.user=<EMAIL_USERNAME>
server.port=<PORT>
lime.port
andserver.port
lime.cipher.key
andserver.cipher.key
- macOS
If you would like to use it with windows, you should clone this repo and rebuild it with windows.
To enable a more efficient and secure LiMe, we set up an application layer protocol.
- Pure cli version of LiMe Server to enable deployment on linux headless server.
- Adapt Travis CI
- Rebuild The Protocol with Restful API (json)
- Gradle the project
- Use HTML to render the email content
- Use
Hibernate
orMybatis
as a persistence framework - The process bar for the file transmission
- A fancy website for LiMe
- Improve concurrence
- Store all sensitive info in config files
- Enable custom host and port
- Migrate to
Temurin
- Migrate to Non-Oracle JDK or
OpenJDK
- Fix the server thread pool malfunction issue
- Merge all the services out of
P.R.Chinato 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
Fate Whispers To The Warrior,
“You Cannot Withstand This Storm.”
And The Warrior Whispers Back,
“I Am The Storm”
Made with ❤ by Justin Lee!
™ and © 1997-2022 Justin Lee. All Rights Reserved. License Agreement