#
# Callsight: Design
**Project Name:** Callsight
**Date:** 2024-06-11
**Team:** Fuerza Leona
| Nombre | Rol |
| ------------------------------ | ------------- |
| Fernando Daniel Monroy Sanchez | Scrum Master |
| Regina Cavazos Valdés | Product Owner |
| Héctor Marcelo Arroyo Morantte | Developer |
| Jorge Luis Salcedo Orozco | Developer |
| Mariana Amy Martínez Nevárez | Developer |
| Miguel Mendoza Jaidar | Developer |
For more information about Callsight, check out our Wiki:
**https://github.com/Fuerza-Leona/callsight/wiki**
---
<div style="page-break-after: always;"></div>
# Introduction and Goals
In the field of software consulting opportunities come developing truly and deeply personalized solutions for clients. To achieve this, Callsight aims to be the ultimate assistant for enhanced communication between development teams, product owners, and stakeholders during the software development process.
With Callsight, both clients and development teams can take back control over the long and often unproductive meetings with stakeholders. There's never been a better time for innovation in the consulting field. Through AI-powered insights for call analysis, and intelligent automation for improved client support, Callsight will lead the coming consulting revolution.
## Requirements Overview
Callsight aims to perform all of the following:
- Tickets: Raise pinpointed issues, so teams can address them easily.
- Chatbot: Present a project's status as a knowledge base, enabling natural language queries for stakeholders.
- Dashboard: Track communication efforts between consulting partners, development teams and client representatives.
- Analytics: Derive insights from interactions and suggest improvements.
For detailed reference, please see:
- [Callsight's requirements specification doc](https://docs.google.com/document/d/1zJQwHoi3NFCnjgqKQi8zkhANQShcJ0Gd).
- [Callsight's management specification doc](https://docs.google.com/document/d/1b-pRfKHMBBcOyIoVHaRqaERhqut8pMnKHl6L-toZdZI)
## Quality Goals
Software consulting companies always deal with teams of diverse skills: Development, UI/UX, QA, Design, etc. Moreover, teams and clients often speak in different business languages: management, technology, design.
Thus, any tool looking to enhance communication, like Callsight, should address the complex communication barriers that come with this diversity.
Our solution primarily focuses on:
| ID | Quality Category | Description |
| ----- | --------------------------- | ---------------------------------------------------------------------------------- |
| RNF01 | Accesibility | Compatibility with Chrome and Safari, and both desktop and mobile devices |
| RNF02 | Performance | Transcription precision of over 95% and suggestions rated as helpful from users |
| RNF03 | User Experience | User feedback and rollback option for every interaction |
| RNF04 | Security | End-to-end encryption, RBAC for team leaders, members, and clients, and JWT tokens |
| RNF05 | Scalability and Maintenance | Code modularity, detailed documentation, external API management |
## Stakeholders
People and organizations who depend on the success of the Callsight architecture
| Role/Name | Contact | Expectations |
| ----------------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| FuerzaLeona | [fer@callsight.tech](mailto:fer@callsight.tech) | Familiar architecture, not overcomplicated, allows easy implementation of new features |
| Neoris | eleni.ortiz@neoris.com | Architecture that is easy to onboard to, and that meets best practices in software development. Seeks to continue to use and develop the platform |
| Juan Carlos Lavariega Jarquín | lavariega@tec.mx | Clean architecture, demonstrating understanding of TC3005B course contents |
<div style="page-break-after: always;"></div>
# Architecture Constraints
Callsight shall be:
- available on all operating systems, due to the nature of being on the web
- responsive in design, as it should be usable on any device
- adapted to a software consulting business and its needs
- secure, due to the sensitive nature of topics discussed
- make use of React framework frontend
- make use of a RESTful API backend
# Context and Scope
To define the services that delimit Callsight, we've defined a set of neighboring systems and users which help define our external interfaces.
## Business Context
Business overview of links between Callsight and its environment.
The environment consists of services Callsight makes use of.
Because meetings are the primary channel for communicating both requirements and issues in consulting, our system is designed around the inputs and outputs that emerge from these interactions.
<p style="text-align: center; margin: 5rem;">
<img src="https://hackmd.io/_uploads/Sk2O_E-eex.png">
</p>
| Component | Description |
| ---------------- | ----------- |
| Agent | Consultant for the company—often a Product Owner—who meets with clients and helps prioritize tasks for the development team. Agents are vital during inital conversations with clients. |
| Client | Representative of the client, responsible for validating deliverables and addressing concerns. Clients have needs they expect to be fulfilled.
| Communication Channel | Platforms like MS Teams, which are the primary channel for all communications. They provide meetings context and recordings. |
| Database Hosting | Callsight saves and retrieves core information about clients, agents and their interactions. |
| Project Knowledge Base | Callsight stores a knowledge base of all events, data and metadata generated around a project that can be accessed through natural language.
| Meeting Transcriber | Callsight retrieves transcripts from meeting recordings. |
| Meeting Analyzer | Callsight uses meeting transcripts and the context from the project's knowledge base to generate insights like summaries, sentiment analysis, suggestions, etc. |
## Technical Context
Technical overview of existing links between Callsight and its environment.
<p style="text-align: center; margin: 5rem;">
<img src="https://hackmd.io/_uploads/B1-kgSWelx.png">
</p>
Callsight communicates with every component through the HTTPS calls over the internet.
<div style="page-break-after: always;"></div>
# Building Block View

## Sequence diagram: HU15: Client uploads meeting video
| **Client** | **Frontend (React)** | **Backend (FastAPI)** | **Storage (Supabase/S3)** | **Database (Supabase DB)** | **IA (Whisper, GPT, etc.)** |
| ------------------------------- | ------------------------------------------- | ---------------------------------------------- | -------------------------------- | -------------------------------------------- | ------------------------------------------- |
| | Client selects video and fills the form | | | | |
| 𖨆 | POST /uploadVideo with video + metadata | | | | |
| | | Receive video + metadata | | | |
| | | Upload file to storage | Save the file | | |
| | | Receive video URL | | | |
| | | Save metadata + URL in database | | Insert registry in table | |
| | | Process analysis | | | |
| | | | | | Process the video from saved URL |
| | | | | | Generates transcription, summary, insights |
| | | Receive results | | | |
| | | Save data in database | | Actualiza tabla resultados con análisis | |
| 𖨆 Client consults | GET /videoStatus/:i` | | | | |
| | | Retrieve data from database from state + results | | Search state + insights | |
| | Receive state + analysis | | | | |
| 𖨆 UI renders results | | | | | |