SyncHub Frontend is a sleek, modern, and responsive chat application built with React and real-time communication capabilities. It provides an intuitive user interface for instant messaging with beautiful animations and a seamless user experience.
- ๐ฌ Real-time Messaging - Instant message delivery with Socket.io
- ๐จ Modern UI/UX - Beautiful interface built with Tailwind CSS
- ๐ Secure Authentication - JWT-based user authentication
- ๐ฅ Online Status - See who's online in real-time
- โ๏ธ Typing Indicators - Know when someone is typing
- ๐ Responsive Design - Works perfectly on all devices
- โก Fast Performance - Built with Vite for lightning-fast development
- ๐ญ Smooth Animations - Engaging user experience with animations
- ๐ฑ Mobile Friendly - Optimized for mobile devices
| Technology | Purpose |
|---|---|
| React 19 | UI library for building user interfaces |
| Vite | Next-generation frontend tooling |
| Tailwind CSS 4 | Utility-first CSS framework |
| Socket.io Client | Real-time bidirectional communication |
| Axios | HTTP client for API requests |
| React Router DOM | Client-side routing |
| ESLint | Code linting and quality |
- Node.js (v14 or higher)
- npm or yarn package manager
- Backend server running (see backend repo)
-
Clone the repository
git clone https://github.com/Shriii19/synchub-frontend.git cd synchub-frontend -
Install dependencies
npm install
-
Configure API endpoint
Update the backend URL in the Socket.io connection and axios requests if needed:
- Default:
http://localhost:5000
- Default:
-
Start the development server
npm run dev
-
Build for production
npm run build
-
Preview production build
npm run preview
The application will be available at http://localhost:5173
frontend/
โโโ public/
โ โโโ vite.svg # Vite logo
โโโ src/
โ โโโ assets/ # Static assets
โ โ โโโ react.svg
โ โโโ pages/
โ โ โโโ Login.jsx # Login/Register page
โ โ โโโ Chat.jsx # Main chat interface
โ โโโ App.jsx # Main app component with routing
โ โโโ App.css # App-specific styles
โ โโโ index.css # Global styles with Tailwind
โ โโโ main.jsx # Application entry point
โโโ index.html # HTML template
โโโ vite.config.js # Vite configuration
โโโ eslint.config.js # ESLint configuration
โโโ package.json # Dependencies and scripts
โโโ .gitignore # Git ignore rules
- User registration with email validation
- Secure login with JWT tokens
- Persistent sessions with localStorage
- Token-based API authentication
- Real-time message sending and receiving
- Message history loading
- Auto-scrolling to latest messages
- Typing indicators
- Online user count
- Message timestamps
- User identification
- Smooth scrolling animations
- Loading states
- Error handling
- Responsive layout
- Clean and intuitive design
- Emoji and text support
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build for production |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint for code quality |
The project uses Vite for fast development and optimized builds. Configuration can be modified in vite.config.js.
Tailwind is configured with the @tailwindcss/vite plugin for instant updates and modern CSS features.
Code quality is maintained with ESLint and React-specific rules.
- ๐จ Themes - Dark/Light mode toggle
- ๐ต Sound Effects - Notification sounds for new messages
- ๐ Emoji Picker - Built-in emoji selector
- ๐ Message Formatting - Markdown support for rich text
- ๐ผ๏ธ User Avatars - Profile picture uploads and display
- ๐ File Sharing - Drag-and-drop file uploads with preview
- ๐ Message Search - Search through chat history
- ๐ Pin Messages - Pin important messages at the top
- โ๏ธ Edit Messages - Edit sent messages
- ๐๏ธ Delete Messages - Delete own messages
- โฉ๏ธ Reply to Messages - Thread-like message replies
- ๐ญ Reactions - React to messages with emojis
- ๐ช Multiple Rooms - Create and join different chat rooms
- ๐ Private Rooms - Password-protected rooms
- ๐ฅ Direct Messages - One-on-one conversations
- ๐ Room Info - View room members and settings
- ๐ฏ Mentions - @mention specific users
- ๐น Video Calls - WebRTC video/audio calling
- ๐ค Voice Messages - Record and send voice clips
- ๐บ Screen Sharing - Share screen in calls
- ๐ Push Notifications - Browser notifications for messages
- ๐ Location Sharing - Share location in chat
- ๐ค User Profiles - Detailed user profile pages
- ๐ Status Updates - Custom status messages
- ๐ Notification Center - Centralized notification panel
- ๐ User Badges - Achievement badges
- ๐ Activity Tracking - User activity insights
- โฟ Accessibility - WCAG compliance for all users
- ๐ Internationalization - Multi-language support
- ๐พ Offline Support - PWA capabilities with service workers
- ๐ Message Sync - Cross-device message synchronization
- ๐ฎ Keyboard Shortcuts - Power user keyboard navigation
- ๐ฑ Mobile App - React Native mobile version
- ๐ Admin Dashboard - Comprehensive admin controls
- ๐ Analytics - User engagement analytics
- ๐ SSO Integration - Single sign-on support
- ๐ Audit Logs - Activity logging and monitoring
- ๐ API Documentation - Interactive API explorer
- ๐ค Chatbot Integration - Automated chat assistance
- โก Lightning-fast build times with Vite
- ๐ฆ Code splitting for optimal bundle size
- ๐ Lazy loading of components
- ๐๏ธ Asset optimization and compression
- ๐ React 19 performance improvements
- ๐จ TailwindCSS JIT for minimal CSS
The application is fully responsive and optimized for:
- ๐ฑ Mobile devices (320px and up)
- ๐ฑ Tablets (768px and up)
- ๐ป Laptops (1024px and up)
- ๐ฅ๏ธ Desktops (1280px and up)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
Project Link: https://github.com/Shriii19/synchub-frontend
Backend Repository: https://github.com/Shriii19/synchub-backend
Made with โค๏ธ by the SyncHub Team
โญ Star us on GitHub โ it motivates us a lot!