SRS_1 - COS301-SE-2025/Hands-Up GitHub Wiki
Imagine you are in a busy shopping centre and someone tries to get your attention — not with words, but through a series of hand gestures. You watch, trying to decipher the movements, but remain unsure. Gradually, you recognize it as sign language and find yourself wishing you understood, even just a little. You wish there were a way to translate their gestures. As TMKDT, we aim to turn those wishes into reality with Hands UP. A powerful application to help you — one sign at a time!
Hands UP is an innovative application that bridges the communication gap between signers and non-signers. Using advanced AI technology, the application detects and translates sign language in real-time through the device's camera, converting signs into both text and spoken language without significant delays. Beyond translation, it also serves as an interactive learning platform with structured lessons and immediate feedback on signing accuracy.

Note: A user refers to anyone using the application, while a learner specifically refers to someone who has created an account.
User Story | Acceptance Criteria | Definition of Done |
---|---|---|
Registration As a user, I want to create an account with my name, username, email and password So that I can access the sign language learning curriculum |
- All input fields are required - Email address is validated for correct format - Password must be at least 8 characters - Duplicate usernames and emails are not allowed |
My account has been created successfully and I am automatically logged in and redirected to the learning homepage. |
Login As a learner, I want to login into my account using my email and password So that I can continue with the sign language learning curriculum |
- All input fields are required - User is authenticated against stored credentials - Appropriate error message is shown for invalid login attempts |
I have successfully logged in and automatically redirected to the learning homepage. |
Forgot Password As a learner, I want to reset my password via a link sent to my email So that I can regain access to my account if I have forgotten my password |
- A reset link is sent to the email address if it exists - Link redirects to a secure page to set a new password - User receives confirmation of password change |
My password is updated and I can now log in with the new credentials. |
Manage Profile As a learner, I want to update my name, username, email and password So that my account information remains valid and up to date |
- All fields are editable - Input is validated before saving - Confirmation message is shown before updating |
My changes are saved and I can see the updated details. |
Learning Progress As a learner, I want to view my achievements, day streak and total XP So that I can track my progress and stay motivated |
- Achievements, day streak and total XP are displayed - Data is updated after a task is completed |
I am able to view my learning progress. |
Camera Input for Translation As a user, I want to input signs using my device's camera So that it can be translated into spoken and written language in real time |
- Camera access is granted and working - Signs are detected and captured |
I have successfully entered a sign via the camera for translation. |
Upload Input As a user, I want to upload images and videos from my device So that they can be translated into spoken and written language in real time |
- User has uploaded a supported file format | The media I have chosen has been successfully uploaded and is now being processed. |
Translate Letters As a user, I want to sign individual letters So that they can be translated into spoken and written language in real time |
- System recognises the individual signed letters from the input - Signs are translated accurately - Signs are translated in real time - Translated signs are output as text and audio - Letters appear in the correct order if multiple are signed |
The letters I have signed are accurately translated and displayed immediately. |
Translate Phrases As a user, I want to sign short and commonly used phrases So that they can be translated into spoken and written language in real time |
- System recognises the signs from the input - Signs are translated accurately - Signs are translated in real time - Translated signs are output as text and audio - Output matches the intended meaning |
The phrases I have signed are accurately translated and displayed immediately. |
Translate Sentences As a user, I want to sign full sentences So that they can be translated into spoken and written language in real time |
- System recognises the signs from the input - Signs are translated accurately - Signs are translated in real time - Translated signs are output as text and audio - Output matches the intended meaning |
The sentences I have signed are accurately translated and displayed immediately. |

FR 1: Application must allow user profile creation and customization
FR 1.1: Users must be able to create and manage a personal account
FR 1.2: Users must be able to log into their personal account
FR 1.3: Users must be able to set learning goals and preferences
FR 2: Application must allow users to input visual data
FR 2.1: The system must allow users to provide visual input via device cameras
FR 2.2: The system must allow users to upload media (images/videos)
FR 3: Application must be able to translate sign language
FR 3.2: Application must provide text output
FR 3.3: Application must provide audio output
FR 4: Application must provide a structured curriculum
FR 4.1: There should be an overview of the entire course
FR 4.2: Lessons should be organized progressively, from basic to advanced topics
FR 4.3: Each lesson should include clear objectives, interactive content, and practice exercises
FR 5: Application must support real-time feedback and correction
FR 5.1: Users must receive immediate feedback on incorrect signs
FR 5.2: Application must suggest correct hand gestures or movements
FR 6: Users should see their learning progress
FR 6.1: Application should provide comprehensive progress analysis
FR 6.1.1: The app must show the user's daily streak, total XP and achievements
FR 6.2: Progress should be presented in a simple, graphical manner
FR 7: Application should support multiple dialects of sign language
FR 7.1: Users must change their preferred dialect in settings
FR 7.2: Content, translation and feedback should adapt based on the selected dialect
FR 8: Application must provide a built-in game to test sign language knowledge apart from lessons
FR 8.1: The game should include challenges
FR 8.2: Scores awarded should contribute to overall learner progress
FR 8.3: Users should be able to replay the game at anytime
Quality Attribute | Description |
---|---|
Usability | The system will feature an intuitive user interface designed for users of varying tech literacy. Accessible navigation and real-time visual feedback will ensure a smooth learning and translation experience. |
Performance | Real-time translation of sign language must occur with minimal latency (<200ms response time). The system should maintain responsiveness under concurrent user loads. |
Scalability | The architecture must support horizontal scaling to accommodate increasing numbers of users and data (especially for cloud-based ML inference). |
Availability | System uptime must be ≥ 99%, especially for real-time features. Cloud hosting and CDN caching will support this. |
Security | Secure user authentication (e.g., Firebase Auth), HTTPS communication, and data privacy compliance (e.g., POPIA/GDPR) will be implemented. |
Maintainability | Codebase will be modular with proper documentation and CI/CD integration (e.g., GitHub Actions, Docker) for seamless updates and bug fixes. |
Offline Support | As a PWA, the system will provide limited offline functionality (e.g., cached lessons, recent translations) using service workers. |
Client-Server Architecture: The core of the application will follow a traditional client-server model, where the frontend (React/Flutter Web) interacts with backend APIs (Node.js or FastAPI).
Microservices Architecture (Optional Future Enhancement): For scaling specific components (e.g., translation service, learning analytics), consider migrating to microservices. Useful if sign language models are containerized and deployed separately.
Event-Driven Architecture (for real-time feedback): WebSockets or similar technologies may be used to push real-time detection and feedback from the backend to the client.
MVC (Model-View-Controller): Separates the UI (View), data handling (Model), and app logic (Controller) for clear organization.
Pattern | Purpose |
---|---|
Observer Pattern | Used to trigger UI updates in real-time when sign language is recognized (e.g., translating input frames to words). |
Strategy Pattern | Enables switching between different sign language models or learning modules dynamically. |
Singleton Pattern | For managing global app state like authenticated user, current lesson progress, or AI model instances. |
Factory Pattern | Instantiate different AI model types (learning, translation, gamification) |
Web-Based Delivery: The application must be accessible through modern web browsers. This limits hardware-level access but ensures platform independence.
Progressive Web App (PWA): The system must support PWA features such as:
- Add to home screen
- Offline support using service workers
- Background sync and push notifications for learning reminders
Budget Limit: All technologies must be open-source or free-tier friendly. Preference for Google Cloud, Firebase, and GitHub for deployment and services.
Dataset Limitations For the initial phase of the project, we will use publicly available datasets such as the Sign Language MNIST and ASL alphabet datasets available on Kaggle. These datasets cover basic static hand gestures for American Sign Language (ASL).
1. Artificial Intelligence & Machine Learning
1.1 The model must be capable of detecting, interpreting and translating hand gestures into text and speech in real time.
1.2 The model must be hosted remotely and accessible via network calls from client applications.
1.3 Users must be able to interact with the application without needing to perform local setup.
2. Backend & API
2.1 The backend must provide APIs for user account management, translation input/output, progress tracking and gamification features.
2.2 It must handle authentication, secure data access and integration with external services.
2.3 It must be scalable and capable of serving requests from both web and mobile clients.
3. Frontend & Application Interface
3.1 The system must support sign language recognition through visual input.
3.2 A Progressive Web App (PWA) must be provided.
3.3 The interface must provide speech output to accompany text translation results.
4. Data Storage & User Management
4.1 User data, including accounts, learning progress and preferences, must be stored in a structured relational format.
4.2 All user data must be securely stored in a remote database.
4.3 The application must be able to fetch and update user data on demand, with minimal delay.
5. Deployment & Accessibility
5.1 The system must be fully deployable and accessible from any device with internet access.
5.2 Users must be able to download and use the application immediately without manual setup.
5.3 All services must be remotely hosted.
6. Continuous Integration and Delivery
6.1 The development workflow must support automated testing, building and deployment for all system components.
6.2 The system must ensure consistent and reliable updates with minimal downtime.