Page 1 of 6
RedScan System Requirements Document
Introduction
The RedScan project aims to develop a mobile application that functions as a blood analyzer using a phone camera and a disposable test strip. This MVP (Minimum Viable Product) will provide users with their blood group and hemoglobin estimates, along with basic explanations and disclaimers. The application will be built using React Native for the mobile app and Node.js for the backend, ensuring a clean architecture and easy scalability for future enhancements.
System Overview
RedScan is designed to offer a user-friendly experience for individuals seeking to perform basic blood tests using their mobile devices. The application will guide users through a series of steps to capture and analyze blood samples, providing results and educational content. The backend will handle user authentication, data storage, and analysis processing.
Platforms
- Mobile App: Android (initially), with code structured for easy adaptation to iOS.
- Backend: Node.js with Express or Fastify, using TypeScript.
Page 2 of 6
Core Features
- User authentication and profile management.
- Guided test wizard for blood sample analysis.
- Display of test results with explanations and disclaimers.
- History of past tests with options to export and share results.
- Educational content about blood groups and hemoglobin.
Functional Requirements as Story Points
- As a User, I should be able to sign up and log in using my email and password.
- As a User, I should be able to view and update my profile information.
- As a User, I should be able to start a new blood test from the home screen.
- As a User, I should be guided through the test process with clear instructions.
- As a User, I should be able to capture an image of the test strip using my phone camera.
- As a User, I should receive my blood group and hemoglobin results after analysis.
- As a User, I should be able to view a history of my past tests.
- As a User, I should be able to export and share my test results as a PDF.
- As a User, I should be able to access educational content about blood tests.
- As a User, I should see clear disclaimers and consent information before using the app.
User Personas
- General User: Individuals using the app to perform blood tests and access educational content.
- Admin: Backend administrators managing user data and application settings.
Page 3 of 6
Core User Flows
-
Onboarding & Authentication
- User opens the app -> views consent & disclaimer -> signs up/logs in -> accesses home screen.
-
Conducting a Blood Test
- User taps "Start Test" -> follows preparation instructions -> pricks finger and applies blood -> waits for countdown -> captures image -> receives results.
-
Viewing Test History
- User accesses history -> views list of past tests -> selects a test for detailed results -> exports/shares results as PDF.
-
Accessing Educational Content
- User navigates to education section -> selects a topic -> reads static content.
Visuals Colors and Theme
- primary: #007BFF (a vibrant blue for primary actions)
- primary_light: #66B2FF (a lighter blue for hover states)
- secondary: #FF6347 (a coral hue for emphasis and links)
- accent: #32CD32 (a bright green for CTAs and active states)
- highlight: #FFD700 (a warm gold for notifications and indicators)
- bg: #FFFFFF (a clean white background)
- surface: rgba(245, 245, 245, 0.8) (a light grey for cards and panels)
- text: #333333 (a dark grey for primary text)
- text_muted: #777777 (a softer grey for secondary text)
- border: rgba(200, 200, 200, 0.5) (a subtle grey for borders)
Page 4 of 6
Signature Design Concept
Interactive Blood Test Journey
The RedScan landing page will feature an interactive journey of a blood test. As users scroll, they will see an animated sequence of a blood drop traveling through a virtual test strip, transforming into visual results. This animation will use motion/react for smooth transitions and interactive elements. Users can hover over different parts of the test strip to see detailed explanations of each step, enhancing their understanding of the process.
Landing Hero Motion Brief
The hero section will depict a drop of blood entering a test strip, which then visually transforms to show the blood group and hemoglobin results. The animation will loop every 10 seconds, with interactive hotspots that provide additional information when clicked. The design will be responsive, ensuring a seamless experience across devices.
Interaction Model & Motion Direction
Page 5 of 6
Non-Functional Requirements
- The application must be scalable to support future enhancements.
- Ensure high performance and responsiveness across devices.
- Maintain data privacy and security, especially for sensitive health information.
Tech Stack
- Frontend: React Native (TypeScript)
- Backend: Node.js (TypeScript) with Express or Fastify
- Database: PostgreSQL or MongoDB
- State Management: React Query and Zustand or Context
- Navigation: React Navigation
- Image Handling: react-native-camera or expo-camera
- PDF Handling: react-native-pdf or HTML-to-PDF approach
Assumptions and Constraints
- The MVP will initially support Android devices, with plans to extend to iOS.
- The analysis logic will be a placeholder, structured for easy integration of real image-processing/ML in the future.
- The application will be tested with real users and test strips in a pilot phase.
Page 6 of 6
Glossary
- MVP: Minimum Viable Product
- JWT: JSON Web Token
- API: Application Programming Interface
- UX: User Experience
- UI: User Interface
- PDF: Portable Document Format
This document outlines the requirements and design for the RedScan project, ensuring a clear path from development to deployment of the MVP.
No comments yet. Be the first!