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
Backend
- Python with FastAPI for server-side logic.
Database
- PostgreSQL for structured data storage.
- Alembic for database migrations.
AI Tools
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
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
);
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
);
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
);
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
);
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.
No comments yet. Be the first!