wild-platform

bySpade Venture

build a platform which allows businesses to schedule zoom calls or personal meetings with its clients. Once business sets up schedule zoom call or personal meeting, email, whatsapp notification goes to the client. It should also maintain history of records. It should also allow live chat feature with multiple clients at a time. Build the server side code in python and corresponding UI in any preferred javascript framework. All API integrations from UI to server should be intact. Write unit tests as well. Solution should be dockerized, so write dockerfile also

LoginScheduleChat
Login

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document
Page 1 of 7

System Requirements Document (SRD) for wild-platform

1. Introduction

The wild-platform is a project designed to enable businesses to efficiently schedule Zoom calls or personal meetings with their clients. Developed for Spade Venture in India, this platform integrates real-time live chat, automated notifications via email and WhatsApp, and a robust meeting history tracker. The solution will be built with a flat access model, ensuring simplicity and ease of use for businesses and their clients. The backend will be implemented in Python, with a modern JavaScript framework for the frontend, and PostgreSQL as the database.

2. System Overview

The wild-platform aims to streamline client-business interactions by providing the following core functionalities:

  • Scheduling Zoom calls or personal meetings.
  • Sending automated notifications (email and WhatsApp) to clients.
  • Maintaining a detailed history of meetings, including type, timestamps, and optional notes.
  • Enabling real-time, one-on-one live chat between businesses and clients.
  • Ensuring a seamless and intuitive user experience with a flat access model.
  • Providing a fully dockerized solution for easy deployment and scalability.

The system will be designed with a focus on reliability, scalability, and user-friendliness, leveraging modern technologies like Python, React, and PostgreSQL.

Page 2 of 7

3. Functional Requirements

  • As a Business, I should be able to schedule Zoom calls or personal meetings with clients.
  • As a Business, I should be able to send automated email and WhatsApp notifications to clients upon scheduling a meeting.
  • As a Business, I should be able to view the history of all meetings, including meeting type, timestamps, and optional notes.
  • As a Business, I should be able to engage in real-time, one-on-one live chat with clients.
  • As a Business, I should be able to access the platform via a responsive web interface.
  • As a Developer, I should be able to run the solution in a Dockerized environment.
  • As a Developer, I should be able to write and execute unit tests for all major functionalities.

4. User Personas

Business

  • Description: A business representative managing client interactions.
  • Primary Goals: Schedule meetings, notify clients, maintain meeting history, and engage in live chat.
  • Technical Proficiency: Moderate to high.
  • Access Level: Full access to all platform features.

Client

  • Description: A client interacting with the business.
  • Primary Goals: Receive notifications, attend scheduled meetings, and engage in live chat.
  • Technical Proficiency: Low to moderate.
  • Access Level: Limited to receiving notifications and participating in live chat.

5. Visuals Colors and Theme

Page 3 of 7

Color Palette

  • Background: #F4F9F9 (soft mint green for a calming effect)
  • Surface: #FFFFFF (pure white for clean interfaces)
  • Text: #333333 (dark charcoal for readability)
  • Accent: #007BFF (vivid blue for interactive elements like buttons and links)
  • Muted: #B0BEC5 (soft gray for secondary information and borders)

6. Signature Design Concept

The wild-platform homepage will feature an interactive timeline interface. The timeline will visually represent the business's upcoming meetings, with each meeting displayed as a clickable "event card."

Key Features:

  • Dynamic Animations: Event cards will expand with a smooth zoom-in effect when hovered over, revealing meeting details like type, time, and client name.
  • Real-Time Updates: The timeline will auto-refresh to reflect newly scheduled meetings or changes.
  • Color-Coded Events: Zoom meetings will appear in blue, while personal meetings will appear in green, making it easy to differentiate at a glance.
  • Interactive Chat Bubble: A floating chat bubble will be anchored to the bottom-right corner of the page, pulsating gently to indicate live chat availability.

This design ensures an engaging and intuitive user experience while emphasizing the platform's core functionalities.

7. Non-Functional Requirements

  • Performance: The platform should handle up to 1,000 concurrent users without performance degradation.
  • Scalability: The system should be scalable to support future features and increased user load.
  • Security: All data, including chat messages and meeting details, must be encrypted in transit and at rest.
  • Reliability: The platform should maintain 99.9% uptime.
  • Localization: Default timezone set to IST (Indian Standard Time) with support for other timezones in the future.
Page 4 of 7

8. Tech Stack

Frontend

  • React for web interface.

Backend

  • Python with FastAPI for server-side logic.

Database

  • PostgreSQL for structured data storage.
  • Alembic for database migrations.

AI Tools

  • Litellm for LLM routing.

Orchestration

  • Docker for local orchestration.
  • Kubernetes for server-side orchestration.

9. Assumptions and Constraints

Page 5 of 7

Assumptions

  • Businesses will provide their own Zoom API credentials for meeting scheduling.
  • Clients will have access to email and WhatsApp for receiving notifications.
  • The platform will primarily serve businesses in India, with potential for global expansion.

Constraints

  • The platform must adhere to GDPR and other relevant data protection regulations.
  • The system must operate within the constraints of the chosen tech stack and infrastructure.
Page 6 of 7

10. PostgreSQL Data Model

-- Table to store business details
CREATE TABLE businesses (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    phone_number VARCHAR(15),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Table to store client details
CREATE TABLE clients (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    phone_number VARCHAR(15),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Table to store meeting details
CREATE TABLE meetings (
    id SERIAL PRIMARY KEY,
    business_id INT REFERENCES businesses(id),
    client_id INT REFERENCES clients(id),
    meeting_type VARCHAR(50) CHECK (meeting_type IN ('Zoom', 'Personal')),
    scheduled_at TIMESTAMP NOT NULL,
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Table to store notification logs
CREATE TABLE notifications (
    id SERIAL PRIMARY KEY,
    meeting_id INT REFERENCES meetings(id),
    notification_type VARCHAR(50) CHECK (notification_type IN ('Email', 'WhatsApp')),
    sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Table to store chat messages
CREATE TABLE chat (
    id SERIAL PRIMARY KEY,
    business_id INT REFERENCES businesses(id),
    client_id INT REFERENCES clients(id),
    message TEXT NOT NULL,
    sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Page 7 of 7

11. Glossary

  • Zoom Call: A virtual meeting conducted via the Zoom platform.
  • Personal Meeting: An in-person meeting between a business and a client.
  • Real-Time Chat: A feature allowing instant text communication between a business and a client.
  • Dockerized: Packaged with Docker to ensure consistent deployment across environments.
  • Flat Access Model: A system where all users have equal access to features without hierarchical roles.
Login design preview
Login: Sign In
Dashboard: View Timeline
Schedule: Book Meeting
Schedule: Send Notifications
History: View Records
Chat: Message Client