Zingle is a modern chat application built with Next.js, TypeScript, Tailwind CSS, Supabase, and ShadCN. It supports real-time messaging, message editing, and deletion, with user authentication via email verification. The application is designed for seamless and engaging conversations.
- Real-Time Messaging: Instant updates for smooth, uninterrupted conversations.
- Email Authentication: Users register and log in with email verification for added security.
- Message Management: Edit and delete messages within a real-time environment.
- Responsive UI: Built with Tailwind CSS for a mobile-friendly and accessible design.
- Scalable Backend: Powered by Supabase for authentication and real-time data management.
- Frontend: Next.js, TypeScript, Tailwind CSS, ShadCN/UI
- Backend: Supabase (for Authentication and Real-Time Database)
- Additional Libraries:
- Supabase Client: For handling database operations.
- ShadCN/UI: For customizable components.
- Node.js (v14 or higher)
- NPM or Yarn
- Supabase account and project setup
- Environment variables for Supabase
- Clone the Repository:
git clone https://github.com/yourusername/zingle.git cd zingle
- Install Dependencies:
npm install #or yarn install
- Set Up Supabase:
- Go to Supabase and create a new project.
- Copy your API URL and Public Anon Key from Supabase Project Settings.
- Set up a messages table in Supabase with fields for message content, sender, and timestamps.
-
Create Environment Variables:
NEXT_PUBLIC_SUPABASE_URL = <your-supabase-url> NEXT_PUBLIC_SUPABASE_ANON_KEY = <your-supabase-anon-key> NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME = <your-cloud-name>
- id (UUID) - Primary key
- content (TEXT) - The message content
- sender_id (UUID) - Reference to the user
- created_at (TIMESTAMP) - Timestamp for message creation
- updated_at (TIMESTAMP) - Timestamp for message updates
- Run the Development Server:
npm run dev
Open http://localhost:3000 to view it in your browser.
- User Authentication:
- Users must register with their email address.
- After verification, they can log in and access chat functionalities.
- Real-Time Messaging:
- Send, edit, and delete messages.
- Messages are displayed instantly for all users in the chat.
Feel free to contribute to this project by creating issues, submitting feature requests, or making pull requests.
- Fork the project.
- Create your feature branch (git checkout -b feature/YourFeature).
- Commit your changes (git commit -m 'Add YourFeature').
- Push to the branch (git push origin feature/YourFeature).
- Open a pull request.