An open API service indexing awesome lists of open source software.

https://github.com/dz1kill/frontend_messenger

MVP Frontend for messenger.
https://github.com/dz1kill/frontend_messenger

axios chat chat-client http-client jwt jwt-auth messenger messenger-client pern-stack react redux-toolkit typescript websocket-client

Last synced: about 1 month ago
JSON representation

MVP Frontend for messenger.

Awesome Lists containing this project

README

          

# Messenger Frontend MVP

## 📌 Overview

This is a minimum viable product (MVP) of a messenger application featuring:

- **Backend**: Companion server + Full API reference (REST endpoints, WebSocket protocol) - [GitHub Repository](https://github.com/dz1kill/backend_messenger)
- **Frontend**: React-based interface with REST API + JWT auth for user management and WebSocket API for real-time messaging

## ✨ Core Features

### 🔌 WebSocket Connection

#### đŸ’Ŧ Chats & Groups

- 📜 Paginated loading of private chats
- 📜 Paginated loading of group chats

#### âœ‰ī¸ Messaging

- 📜 Paginated loading of private messages
- 📜 Paginated loading of group messages
- âœˆī¸ Send private messages
- âœˆī¸ Send group messages

#### 🛠 Group Management

- ➕ Create new groups
- đŸ‘Ĩ Add new members to groups
- đŸšĒ Leave group
- ❌ Delete group
- â„šī¸ System notifications (member joins/leaves)

### 🌐 HTTP API

#### 🔐 Authentication

- 📝 User registration
- 🔑 Login
- 🔄 Password change
- 🗑 Account deletion

#### 👤 User Profile

- âœī¸ Edit personal information

#### 🔍 Search

- 👤 User search
- 🔎 Find users and groups I'm member of
- ➕ Find users to add to groups

#### 🗂 Chat Management

- ❌ Delete conversation

## 🛠 Technical Stack

### Frontend Core

- **React** - UI framework
- **Redux Toolkit** - State management
- **React Router DOM** - Client-side routing

### Real-Time Communication

- **WebSocket API** - Real-time messaging
- **React-use-websocket** - WebSocket integration

## đŸ–ŧī¸ Interface Screenshots

### 1. Authorization


🔍 Show screenshot

### 2. Chat


🔍 Show screenshot

### 3. Search


🔍 Show screenshot

### 4. Settings


🔍 Show screenshot

## 🏃 Running the app

```bash
# Replace the API URLs in the .env file with those matching your network.

# Running the project in development mode:
$ npm run start

```