# Voice Chat Bot for Medical Role Play ## Introduction Voice Chat Bot for Medical Role Play is an innovative application designed to simulate medical scenarios through voice interactions. Ideal for medical students, practitioners, and enthusiasts, this app offers a unique platform to practice diagnostic skills, patient communication, and decision-making in a virtual environment. ## Features ### User Management - [ ] **User Registration and Login:** Users can register and log in using their email addresses, ensuring secure access to the app. - [ ] **Profile Management:** Users can manage their profiles, including updating personal details and preferences. - [ ] **Limit**: User have limited access to: - [ ] A pre-defined number of sessions. - [ ] Limited amount of time for a session. ### Chatbot Interaction - [ ] **Disease Selection**: Users can either choose a specific disease for the chatbot to simulate or opt for a random disease. - [ ] **Custom Case Information**: Before starting a conversation, users can input specific information about the case to tailor the simulation. - [ ] **Focused Consultations**: Instead of covering a disease from A to Z, users can focus on specific aspects (e.g., HIV counseling), including handling patient emotions like anger or anxiety. - [ ] **Conversation Duration**: Users can set the duration of the conversation, ranging from 20 to 30 minutes per case. - [ ] **Chat History**: The app retains up to 10 previous chat sessions for user reference. - [ ] **AI Recommendations**: The chatbot offers recommendations on improving communication skills and word choices based on the conversation. - [ ] **Export Transcript**: User can export transcript of the conversation as a pdf file ### Validation and Feedback - [ ] **Input Validation**: All provided information is validated for accuracy and relevance before the chat begins. - [ ] **Feedback Mechanism**: Users can provide feedback on their experience, which helps in improving the chatbot's performance. ### Educational Tools - [ ] **Diagnostic Tips**: During the conversation, the chatbot can offer diagnostic tips and guidelines relevant to the case. - [ ] **Resource Links**: Users have access to links for additional reading and resources related to medical cases. ### Additional User Stories - [ ] **Interactive Case Scenarios**: As a user, I can engage in interactive case scenarios where the chatbot presents symptoms, and I have to diagnose and suggest treatments. - [ ] **Real-time Assistance**: As a user, I can receive real-time assistance or hints from the chatbot if I am stuck during the diagnosis process. - [ ] **Progress Tracking**: As a user, I can track my progress over time, seeing how my diagnostic skills have improved. - [ ] **Gamification Elements**: Introduce gamification elements like scores, levels, and rewards to make the learning process more engaging. ## Technical Specifications ### Database Schema - [ ] Users: Stores user details such as email, password, and profile information. - [ ] Sessions: Records details of each chat session, including user ID, disease chosen, case information, duration, feedback for that session, and chat history. - [ ] Feedback: Captures user feedback on each session for quality improvement purposes. ### Technologies * Frontend: React, Bootstrap. * Backend: Node.js with Express. * Database: MongoDB for storing user data and session details. * Voice Recognition: Integration with a openai API (chat completion, text-to-speech, speech-to-text). ## Getting Started To get started with the development: * Clone the repository. * Install dependencies. * Set up the database. * Configure the environment variables. * Run the application.