- Vite React(for frontend)
- Node.js (for backend)
- Supabase (as a backend service)
- Docker (for containerization)
- Users can login using OAuth with Google and GitHub, or using their email and password.
- Password reset functionality via email.
-
Todo List
- Create, view, and delete personal todo lists.
-
Google Calendar Integration
- Authenticate with Google to manage events in the primary Google Calendar linked to the user's account.
-
Direct Messaging
- Initiate and manage conversations, share text and images (up to 50MB).
-
Channel Management
- Create channels, add/remove admins, assign/delete tasks to channel members and assign task to any member of the channel also, direct message members,channel deletion.
- Role-based access (Admin, Member).
-
Search Functionality
- Search for channels and users(with whom conversation is started) within the Slack Clone.
-
Responsive Design
- User interface adapts to different screen sizes for optimal user experience.
- Create a .env file in the root directory of your project and define the following variables: VITE_SUPABASE_URL=<your_supabase_project_url> VITE_SUPABASE_KEY=<your_supabase_api_key> VITE_Backend_Port=<backend_port_number>
- Create a .env file in the Back_end directory with following variables: Port= EMAIL_USER= EMAIL_PASS= CLIENT_ID= CLIENT_SECRET= REDIRECT_URL= API_KEY= SESSION_SECRET=
-
user_data:
- Columns:
id
(uuid)updated_at
(timestamp)username
(text)avatar_url
(text)email
(text)phone
(text)hashed_password
(text)
- Purpose: Stores user information including username, avatar URL, email, phone number, and hashed password.
- Columns:
-
direct_messages:
- Columns:
id
(uuid)created_at
(timestamp)dm_chats
(json or jsonb)
- Purpose: Stores contact information related to direct messaging.
- Columns:
-
chats_dm:
- Columns:
id
(uuid)created_at
(timestamp)messages
(json or jsonb)
- Purpose: Stores direct messages between users.
- Columns:
-
channels_messages:
- Columns:
channel_id
(uuid)created_at
(timestamp)messages
(json or jsonb)channel_name
(text)channel_members
(json or jsonb)
- Purpose: Stores messages and metadata for channels.
- Columns:
-
channels_list:
- Columns:
id
(uuid)created_at
(timestamp)channels
(json or jsonb)
- Purpose: Lists channels that a user is a member of.
- Columns:
-
Todo_list:
- Columns:
id
(uuid)created_at
(timestamp)todo_list
(json or jsonb)
- Purpose: Stores user-specific todo lists.
- Columns:
-
Mails_sent:
- Columns:
task_id
(uuid)created_at
(timestamp)last_sent
(text)t_f
(bool)
- Purpose: Tracks emails sent as reminders for tasks.
- Columns:
-
Channels_todolist:
- Columns:
id
(uuid)created_at
(timestamp)todo_list
(json or jsonb)
- Purpose: Stores tasks assigned to everyone in a channel.
- Columns: