EZPing ·
A real-time, scalable chat app that utilizes distributed systems design, distributed NoSQL database and message broker to improve chatting experience (just like its name).
- Programming language(s): HTML, CSS, JavaScript
- Programming language(s): Java
- App framework: Spring
- Database: Cassandra
- Distributed in-memory database: Redis
- Query languange: MySQL
- Message broker: RabbitMQ
- Distributed memory caching: Memcached
- HTTP Load Balancing: NGINX
- Create a new account with admin role
- Join a chatroom as any role
- Send public messages to joined chat rooms
- Send private messages to other users
- See active users in any chat room
- Receive messages from other users when going from offline to online
- Internalization supported with 6 languages: English, Chinese, German, Spanish, Japanese, Portuguese.
- Download docker & docker-compose: Docker.
- Install maven for your OS. (Maven works best with JDK 8).
- Start the containers from
docker-compose.yml
with:docker-compose up -d
. (Some docker-compose commands). - Execute the jar file:
java -jar target/EZPing-0.1.0.jar
.
Now, the app is up at http://localhost:8080
.
Remember to mark EZPing directory as Source Root.
- Add more UI to the sites.
- Upload project design & explaination.
- Perhaps use NGINX with Google Cloud Compute Engine? Elaborate more in this article.
- Dung Tuan Le
Computer Science major.
University of Rochester '21.
EZPing is MIT licensed.