Skip to content

๐ŸŒธ Fullstack messenger app based on TypeScript & React & Express & PostgreSQL

Notifications You must be signed in to change notification settings

xN8Tx/blossom-messenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Blossom messenger

๐ŸŒธ Fullstack messenger app based on TypeScript & React & Express & PostgreSQL

๐Ÿ“– Content

๐Ÿค” About

This messenger is my graduation project. Designed to learn how WebSocket works, improve my skills in web application design and working with typescript. The messenger consists of two databases, four servers and an SPA client.

๐ŸŒธ Appearance

Dark theme
Light theme

๐Ÿ’ป Client

Client is typical SPA application based on Vite & React & TypeScript.

๐Ÿ’ซ Features

  • JWT auth
  • Unit and screenshot tests
  • Multilanguage
  • Two colorscheme
  • WebSocket data fetching
  • Three layers of design
    • Client
    • State
    • WebSocket

๐Ÿ•ธ๏ธ Pages

  • Auth - available only for unauthorized user. Use to get sign in or registration. Based on HTTP.
  • Settings - available only for authorized user. Use to customize settings like: appearance, language and your profile. Based on HTTP.
  • Contacts - available only for authorized user. Use to add friends(contacts) to fast access for them and check their information. Based on HTTP.
  • Chats - available only for authorized user. Use for chating. Based on HTTP and WebSocket

๐Ÿฆพ Packages

Another packages you can see here

๐Ÿ”ง Servers

Server side contains four servers based on NodeJS & ExpressJS & TypeScript.

Contains:

  • HTTP server - created to work with auth, to access for first information, work with contacts and settings.
  • WS server โ€“ created to work with chating, CRUD operation with messages and CD operation with chats
  • File server โ€“ created to save and aprocessing files.
  • Database server - created to get access to all databases.

๐Ÿฆพ Packages

Another packages you can see in each server package.json file

๐Ÿ’พ Databases

For this project i use two databases:


๐Ÿ—’๏ธ TODO

  • Add dynamic imports for client
  • Rewritte file system
  • Add postman tests
  • Add e2e tests for client
  • Check client screenshot tests
  • Add husky

Releases

No releases published

Packages

No packages published

Languages