Sparkles Chat

✨Sparkles Chat provides real-time voice and text communication, allowing you to chat with friends anytime and anywhere.

🔗 Website URL: https://sparklezz.site/

📃 API Documentation: https://app.swaggerhub.com/apis-docs/shaoyunjian/sparkleschat/1.0.0

👤 Test Account and Password:

Account Password
sparkles@sparkles.com 12345678
hina@sparkles.com 12345678

Table of Contents

Main Features

Real-Time Text Chat with Socket.IO

  • Use Socket.IO for real-time chat.
  • Use Socket.IO for showing online/offline status.
  • Use Socket.IO for typing indicator.

Real-Time Voice Chat with peer.js

  • Use PeerJS with WebRTC for real-time voice chat.

Image Sharing

  • Support image sharing.
  • Upload images to S3 if user shares images in chatroom or change their avatar.
  • Using AWS CloudFront in conjunction with AWS S3 to store user-uploaded images,
    improve the speed and performance of accessing the content.

Other Features

User Search

Friend Request

  • Search friends and send friend requests.
  • Add friends or delete friend friend requests.

Avatar Edit

  • Upload images to S3 if user change their avatar.
  • Using AWS CloudFront in conjunction with AWS S3 to store user-uploaded images,
    improve the speed and performance of accessing the content.

Member System

  • Authenticate user with JSON Web Token (JWT).
  • Use bcrypt to hash and verify password.

Backend Technique

Deployment

  • Docker
  • Setup CI/CD pipeline with GitHub Actions

Language / Web Framework

  • Node.js / Express.js

Database

  • MongoDB / Mongoose

Cloud Services (AWS)

  • EC2
  • S3
  • CloudFront

Networking

  • HTTP & HTTPS
  • Domain Name System (DNS)
  • NGINX
  • SSL (Let's Encrypt)

Authentication

  • JSON Web Token (JWT)
  • Bcrypt

Version Control

  • Git / GitHub

Architectural Pattern

  • MVC pattern

Architecture

Server Architecture


Socket Architecture

Database Schema

Frontend Technique

  • JavaScript
  • HTML
  • SCSS/CSS
  • AJAX
  • PeerJS

API Documentation

https://app.swaggerhub.com/apis-docs/shaoyunjian/sparkleschat/1.0.0

Contact

☁️ 簡劭芸 Shaoyun Jian

✉ Email: shaoyunjianfw@gmail.com