A modern real-time chat application built with Next.js, Firebase, and TypeScript.
- Real-time Chat: Instant messaging with live updates
- User Authentication: Google Auth and email/password login
- Message Status: Sent, delivered, and read indicators
- Push Notifications: Browser notifications for new messages
- User Profiles: Avatar, blue tick verification system
- Admin Panel: User management and blue tick verification
- Responsive Design: Works on desktop and mobile
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Backend: Firebase (Firestore, Auth, Cloud Messaging)
- State Management: React Hooks, Context API
- Notifications: Firebase Cloud Messaging, Web Push API
- Deployment: Vercel
src/
├── app/ # Next.js app router pages
├── components/ # Reusable React components
├── features/ # Feature-based modules
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and services
└── types/ # TypeScript type definitions
docs/ # Project documentation
public/ # Static assets
scripts/ # Utility scripts
All project documentation is organized in the docs/ folder:
-
Clone the repository
git clone <repository-url> cd SocialProject
-
Install dependencies
npm install
-
Setup environment variables
- Copy
.env.local.exampleto.env.local - Add your Firebase configuration
- Copy
-
Run the development server
npm run dev
-
Open your browser
- Navigate to
http://localhost:3000
- Navigate to
Required environment variables in .env.local:
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_VAPID_KEY=- Real-time messaging with Firestore
- Message status tracking (sent/delivered/read)
- User search and chat initialization
- Emoji and text support
- Browser push notifications
- Sound notifications
- FCM integration for background notifications
- User preference settings
- Google OAuth and email/password auth
- User profiles with avatars
- Blue tick verification system
- Admin panel for user management
The app is configured for deployment on Vercel:
npm run build
npm start- Fork the repository
- Create a feature branch
- Make your changes
- Add documentation to the
docs/folder if needed - Submit a pull request
This project is licensed under the MIT License.
For questions and support, please check the documentation in the docs/ folder or open an issue.
This project is under active maintenance.