Skip to content

DevSingularity/SignAge-Mobile

Repository files navigation

SignAge - Sign Language Learning App

🀟 Learn Sign Language at Your Own Pace

A modern, interactive React Native application for learning sign language


πŸ“± About SignAge

SignAge is a comprehensive sign language learning application built with React Native. It provides an engaging and interactive platform for users to learn sign language through structured lessons, practice sessions, and progress tracking.

✨ Key Features

  • πŸ“š Structured Learning Path: Organized lessons from basics to advanced topics
  • 🎯 Interactive Practice: Multiple practice modes including quizzes and challenges
  • πŸ“Š Progress Tracking: Detailed statistics and achievement system
  • πŸ”₯ Streak System: Daily learning streaks to maintain motivation
  • 🎨 Modern UI: Beautiful, intuitive interface with smooth animations
  • πŸ“± Cross-Platform: Works on both iOS and Android devices

πŸ—οΈ Project Structure

SignAge/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ Button.js
β”‚   β”‚   β”œβ”€β”€ Card.js
β”‚   β”‚   β”œβ”€β”€ Header.js
β”‚   β”‚   └── ProgressBar.js
β”‚   β”œβ”€β”€ screens/             # Application screens
β”‚   β”‚   β”œβ”€β”€ SplashScreen.js
β”‚   β”‚   β”œβ”€β”€ OnboardingScreen.js
β”‚   β”‚   β”œβ”€β”€ HomeScreen.js
β”‚   β”‚   β”œβ”€β”€ LessonsScreen.js
β”‚   β”‚   β”œβ”€β”€ LessonDetailScreen.js
β”‚   β”‚   β”œβ”€β”€ PracticeScreen.js
β”‚   β”‚   └── ProfileScreen.js
β”‚   β”œβ”€β”€ navigation/          # Navigation configuration
β”‚   β”‚   └── AppNavigator.js
β”‚   β”œβ”€β”€ constants/           # App constants
β”‚   β”‚   β”œβ”€β”€ theme.js        # Colors, typography, spacing
β”‚   β”‚   └── data.js         # Lesson and content data
β”‚   β”œβ”€β”€ utils/              # Utility functions
β”‚   β”‚   β”œβ”€β”€ storage.js      # AsyncStorage helpers
β”‚   β”‚   └── helpers.js      # General helper functions
β”‚   └── App.js              # Main app component
β”œβ”€β”€ public/                  # Public assets (if any)
β”œβ”€β”€ android/                 # Android native code
β”œβ”€β”€ ios/                     # iOS native code
β”œβ”€β”€ package.json             # Dependencies
β”œβ”€β”€ babel.config.js          # Babel configuration
β”œβ”€β”€ metro.config.js          # Metro bundler config
└── README.md               # This file

🎨 Design System

Color Palette

Primary Colors:
- Primary Blue: #4A90E2
- Secondary Purple: #7B68EE
- Accent Pink: #FF6B9D

Supporting Colors:
- Success Green: #4CAF50
- Warning Orange: #FFA726
- Error Red: #EF5350

Neutral Colors:
- Background: #F8F9FA
- Surface: #FFFFFF
- Text Primary: #212121
- Text Secondary: #757575

Typography

  • Font Sizes: 10px (xs) to 32px (huge)
  • Font Weights: 300 (light) to 800 (extrabold)
  • Line Heights: 1.2 (tight) to 2 (loose)

Spacing System

  • xs: 4px
  • sm: 8px
  • md: 12px
  • base: 16px
  • lg: 20px
  • xl: 24px
  • xxl: 32px
  • xxxl: 40px
  • huge: 48px

πŸš€ Getting Started

Prerequisites

Before running the app, ensure you have:

  • Node.js (v18.0.0 or higher)
  • npm or yarn
  • React Native CLI
  • Xcode (for iOS development) - macOS only
  • Android Studio (for Android development)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd SignAge
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. Install iOS dependencies (macOS only):

    cd ios
    pod install
    cd ..

Running the App

iOS (macOS only)

npm run ios
# or
yarn ios

Android

npm run android
# or
yarn android

Start Metro Bundler

npm start
# or
yarn start

πŸ“¦ Dependencies

Core Dependencies

  • react: ^18.2.0 - JavaScript library for building user interfaces
  • react-native: ^0.73.0 - Framework for building native apps
  • @react-navigation/native: ^6.1.9 - Navigation library
  • @react-navigation/stack: ^6.3.20 - Stack navigator
  • @react-navigation/bottom-tabs: ^6.5.11 - Tab navigator

UI & Animation

  • react-native-reanimated: ^3.6.0 - Advanced animations
  • react-native-gesture-handler: ^2.14.0 - Touch gesture handling
  • react-native-vector-icons: ^10.0.3 - Icon library
  • react-native-linear-gradient: ^2.8.3 - Gradient components
  • react-native-svg: ^14.1.0 - SVG support

Utilities

  • @react-native-async-storage/async-storage: ^1.21.0 - Local storage
  • react-native-safe-area-context: ^4.8.0 - Safe area handling

🎯 Features Breakdown

1. Onboarding Experience

  • Smooth slide-based introduction
  • Skip functionality
  • Auto-navigation after completion
  • Persisted state (shown only once)

2. Home Dashboard

  • Personalized greeting
  • Current streak display
  • Daily goal progress tracker
  • Quick action shortcuts
  • Continue learning section

3. Lessons Module

  • Categorized learning paths
  • Progress tracking per category
  • Lesson locking mechanism
  • Multiple lesson types (video, interactive, practice)
  • Difficulty indicators

4. Practice Sessions

  • Multiple practice modes
  • Daily challenges
  • Quick practice option
  • Conversation practice
  • Real-time feedback

5. Profile & Progress

  • User profile management
  • Experience points (XP) system
  • Level progression
  • Achievement badges
  • Detailed statistics
  • Settings and preferences

πŸ”§ Configuration

Theme Customization

Edit src/constants/theme.js to customize:

  • Colors
  • Typography
  • Spacing
  • Border radius
  • Shadows

Content Management

Edit src/constants/data.js to modify:

  • Lesson categories
  • Individual lessons
  • Achievements
  • Sign dictionary

πŸ“± Screen Descriptions

SplashScreen

Initial loading screen with animated logo and app branding.

OnboardingScreen

Four-slide introduction showcasing app features with smooth transitions.

HomeScreen

Main dashboard displaying daily goals, streak, quick actions, and recommended lessons.

LessonsScreen

Browse all available lesson categories with progress indicators.

LessonDetailScreen

View individual lessons within a category with completion tracking.

PracticeScreen

Choose from various practice modes including quizzes and challenges.

ProfileScreen

User profile with statistics, achievements, and app settings.


🎨 Component Library

Button

Versatile button component with multiple variants:

  • primary: Filled button (default)
  • secondary: Alternative filled button
  • outline: Outlined button
  • ghost: Text-only button

Sizes: small, medium, large

Card

Elevated card container with customizable:

  • Elevation (small, medium, large)
  • Padding
  • Press handlers

Header

Consistent header component with:

  • Back button
  • Title
  • Right action component

ProgressBar

Animated progress bar with customizable:

  • Height
  • Colors
  • Animation duration

πŸ” Data Persistence

The app uses AsyncStorage for local data persistence:

  • User Profile: Name, email, preferences
  • Lesson Progress: Completed lessons, scores
  • Achievements: Unlocked achievements
  • Streak Data: Daily activity tracking
  • Settings: App preferences
  • Onboarding Status: First-time user flag

πŸ§ͺ Testing

# Run tests
npm test

# Run tests with coverage
npm test -- --coverage

πŸ”¨ Building for Production

Android

cd android
./gradlew assembleRelease

iOS

# Build through Xcode
open ios/SignAge.xcworkspace
# Product > Archive

πŸ“ Code Style

The project follows these coding standards:

  • ESLint: JavaScript linting
  • Prettier: Code formatting
  • Component Structure: Functional components with hooks
  • Comments: JSDoc-style documentation
  • Naming Conventions: PascalCase for components, camelCase for functions

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘₯ Team

SignAge Development Team

  • Empowering communication through technology

πŸ“ž Support

For support, email support@signage.app or open an issue in the repository.


πŸ™ Acknowledgments

  • React Native community
  • All contributors and testers
  • Sign language educators and consultants

Made with ❀️ for the deaf and hard-of-hearing community

Β© 2024 SignAge. All rights reserved.

About

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors