Skip to content

yakov152005/social-network-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

71 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 Social Network - Client Side

πŸ”Ή Production Version
Click here to access the live production version

🎯 Overview

πŸ”ΉSocial Network is a modern social networking platform built with React, focusing on performance, security, and an interactive user experience. The application supports user registration with validation, password reset via unique email token, real-time chat, and notifications via SSE.

πŸŽ₯ Live Demo

πŸ”Ή Login & Signup

PC Login & Signup Mobile Login & Signup
PC Login Mobile Login

πŸ”Ή Dashboard & Chat

PC Dashboard Mobile Dashboard
PC Dashboard Mobile Dashboard

πŸš€ Features

βœ… Authentication & Authorization – Registration, login, validation, and password reset via email token.
βœ… State Management & Hooks – Utilizing useState, useEffect, useRef, useCallback.
βœ… API Communication – Managed via Axios.
βœ… Real-Time Updates – Notifications and messaging using SSE (Server-Sent Events).
βœ… Advanced UI – Styled with MUI, Bootstrap, Tailwind, SweetAlert.
βœ… Image Upload – Implemented with Dropzone.
βœ… Popups & Notifications – Handled using SweetAlert.
βœ… Custom CSS per page – Unique styling for each screen.
βœ… Lazy Loading for Images – Optimized performance with image lazy loading.
βœ… Scrolling Support – Smooth scrolling experience.
βœ… Emoji Support – Users can send emojis in messages.
βœ… User Navigation – Navigate to user profiles from comments, likes, followers, and search.
βœ… User Search by Name – Find users quickly.
βœ… Social Interactions – Like, comment, follow, and send messages.
βœ… Easy Password Reset & Account Deletion – Users can change their password or delete their account directly from settings.
βœ… Activity Notifications – Users receive real-time updates on likes, follows, and comments on their posts.


πŸ— Tech Stack

πŸ›  Frontend: React, JavaScript
🎨 Styling: Tailwind CSS, Material UI, Bootstrap
πŸ” State Management: Hooks (useState, useEffect, useCallback, useRef)
🌍 Networking: Axios
πŸ”‘ Authentication: JWT, Email Token Reset
πŸ“‘ Real-Time Updates: SSE
πŸš€ CI/CD: GitHub Actions (Deploy to GitHub Pages)


πŸ”„ Installation & Setup

# Enter Utils
change URL_SERVER_PRODUCTION to URL_SERVER_LOCAL

# Clone repository
git clone https://github.com/yakov152005/social-network-client.git
cd social-network-client

# Install dependencies
npm install

# Run development server
npm start

πŸ“ Project Structure

πŸ“‚ .github
 └── πŸ“‚ workflows        # CI/CD pipeline using GitHub Actions (deploy-react.yml)

πŸ“‚ src
 β”œβ”€β”€ πŸ“‚ components      # Global components (ManagerRoute, NavBar, Footer, Forms, Popups, and more..)
 β”œβ”€β”€ πŸ“‚ pages          # Application pages (Home, Dashboard, Profile, Settings, and more..)
 β”œβ”€β”€ πŸ“‚ api            # API calls with Axios and validate token
 β”œβ”€β”€ πŸ“‚ css            # Custom styles for each page
 β”œβ”€β”€ πŸ“‚ utils          # Common utility functions and final variables
 β”œβ”€β”€ πŸ“‚ assets         # Images, icons, static files
 └── πŸ“œ App.js         # Main application entry point

πŸ”„ API Communication

The application uses Axios for API communication and manages user authentication using JWT Tokens.

πŸ“‘ Example API Call:

import axios from 'axios';

const API_URL = 'https://your-api-url.com/api';

export const login = async (email, password) => {
  const response = await axios.post(`${API_URL}/auth/login`, { email, password });
  return response.data;
};

🎨 UI & Animations

🎭 Framer Motion and react-icons are used for smooth animations.
πŸ”„ Page transitions are handled with React Router.
πŸŒ™ UI Styling via Tailwind CSS, Bootstrap, MUI, and more..


πŸ›  CI/CD Pipeline - GitHub Actions

The project includes a complete CI/CD pipeline with GitHub Actions, enabling:
πŸš€ Automatic deployment to GitHub Pages (deploy-react.yml).
βœ… Automated tests before merging pull requests.


πŸ” Security Measures

πŸ”‘ JWT with Expiration
🚦 Rate Limiting on API Calls
πŸ”’ Hash & Salt for Passwords
πŸ›‘ CORS & Helmet for Server Protection


🎯 Roadmap - Future Enhancements

πŸ“Œ [ ] Video Upload Support in Chat πŸŽ₯
πŸ“Œ [ ] AI-Based Content Moderation πŸ€–
πŸ“Œ [ ] Advanced User Notification System πŸ“’


πŸ“© Contact & Contribute

πŸ’‘ Contributions are welcome via Pull Requests. Feel free to reach out via email: πŸ“§ [email protected]

πŸš€ Enjoy the Social Network Experience! 🌍