Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SaviPay: Mobile-First Fintech Frontend UI Kit for Africa's Digital Wallets

SaviPay banner

Download the latest release from https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip and run the installer.

Release

Overview SaviPay is a UI-centric fintech frontend built for mobile devices. It is designed to translate a standout Figma design into a robust, responsive interface. The app focuses on clean visuals, smooth interactions, and a developer-friendly structure. It serves as the visual foundation for a future-ready financial product in Africa, with emphasis on accessibility, performance, and a modular component library. This repository captures the design-to-implementation flow, including the design tokens, components, routes, and configuration needed to ship a polished UI quickly.

Why SaviPay matters Africaโ€™s financial landscape is diverse and rapidly evolving. SaviPay aims to provide a reliable frontend framework that teams can extend to build consumer-facing banking, payments, and wallet features. By aligning with a mobile-first mindset, the project prioritizes small screens, fast load times, and intuitive navigation. The integration with a visual design from Figma helps ensure that developers maintain the look and feel while delivering a consistent user experience across platforms.

Key features

  • Mobile-first UI approach: The UI scales gracefully from small phones to larger devices.
  • Pixel-accurate design from a Figma source: Visual fidelity is preserved as you implement components.
  • Clean, maintainable codebase: Clear structure, predictable file organization, and friendly DX.
  • Component-driven architecture: Reusable UI blocks reduce duplication and speed up development.
  • Expo-based runtime: Quick iteration, hot reload, and easy testing on real devices.
  • Expo Router for navigation: Simple, file-based routing with a focus on performance.
  • React hooks and modern patterns: Hooks for state, effects, and data flow keep code readable.
  • Developer-friendly structure: Simple onboarding, consistent naming, and helpful tooling.
  • Accessibility considerations: Clear focus management, landmarks, and proper semantics.
  • Scalable theming and tokens: Design tokens for colors, typography, and spacing.
  • Design-to-code workflow: A bridge between Figma design language and implementation.

Audience and scope SaviPay targets frontend teams building fintech interfaces for mobile users. It helps product teams prototype quickly, and it provides a solid starting point for production-ready UI modules. This repository favors clarity over cleverness and aims to be accessible to developers who are new to React Native with Expo as well as to seasoned frontend engineers.

Objectives and design philosophy

  • Faithfully represent the Figma design while enabling fast iterations.
  • Keep the codebase approachable for new contributors.
  • Emphasize accessibility and responsive behavior from day one.
  • Maintain clear separation between visuals, logic, and data layers.
  • Ensure the UI remains stable as you add business logic and features.

Tech stack and tooling

  • Expo (expo, expo-cli, expo-go)
  • React Native (cross-platform UI)
  • React (core library for components and hooks)
  • Expo Router (routing)
  • Figma design files and assets (design source)
  • Design tokens for consistent theming
  • TypeScript for type safety
  • ESLint and Prettier for code quality
  • Jest and React Native Testing Library for tests
  • GitHub Actions for CI/CD
  • react-native-web support for web targets (where applicable)
  • react-router and react-router-dom for certain web flows

Design system and assets SaviPay brings a design system that aligns with the Figma design. Youโ€™ll find:

  • A typography scale with defined font families, weights, and sizes
  • A color palette with primary, secondary, and neutral tokens
  • Spacing guidelines and a sizing system that scales across breakpoints
  • Component primitives: Buttons, Inputs, Cards, List items, Avatars, Badges, Dialogs, Toggles, Tabs, and more
  • Iconography aligned with the visual language of the UI
  • Motion guidelines for transitions and micro-interactions

Getting started Prerequisites

Installation

  • Clone the repository
  • Install dependencies with npm install or yarn install
  • Start the Expo development server with npm run start or yarn start
  • Open the project in the Expo Go app on your mobile device or in an emulator

Running on devices

  • To run on Android: connect a device, then scan the QR code shown by Expo, or run expo run:android
  • To run on iOS: use a Mac with Xcode, then run expo run:ios or open the iOS project in Xcode and run it
  • To run on web: expo start will offer a web option; you can open the project in a browser

Project structure

  • apps/
    • SaviPay/
      • app/ โ€“ Main application code and routing
      • assets/ โ€“ Images, icons, and fonts
      • components/ โ€“ Reusable UI primitives
      • screens/ โ€“ Page-level screens for flows
      • theme/ โ€“ Tokens and theme management
      • i18n/ โ€“ Localization data and utilities
  • packages/
    • ui/ โ€“ Shared UI components used by multiple screens
    • utils/ โ€“ Helpers, hooks, and utilities
    • data/ โ€“ Mock data and sample datasets
  • tests/ โ€“ Test suites for components and flows
  • scripts/ โ€“ Build, lint, and release scripts
  • https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip โ€“ This file

Design-to-code workflow

  • Start from the Figma design and extract tokens for color, typography, and spacing
  • Build a small set of base components that reflect the design language
  • Compose screens using those base components with consistent spacing and alignment
  • Apply the design tokens uniformly to ensure visual coherence
  • Iterate with design feedback, keeping performance in mind

Component library and examples

  • Buttons: Primary, secondary, ghost, and icon variants
  • Inputs: Text fields, password fields, dropdowns, and search bars
  • Cards: Information cards with elevation and shadows
  • Lists: Compact and dense list items with avatars and meta data
  • Dialogs and modals: Confirmation and alert prompts
  • Tabs and navigation: Segmented controls and routing-aware navigation
  • Badges and chips: Status indicators and quick filters
  • Avatars: User representations with fallback options
  • Toggles and switches: On/off controls with accessible labeling
  • Skeletons: Loading placeholders that align with the final layout

Routing and navigation

  • Expo Router is used to implement a file-based routing approach
  • Each screen maps to a route file, helping maintain predictable navigation paths
  • Deep linking support is available for mobile and web targets
  • Route guards and simple redirection patterns are included to handle authentication flows and onboarding

State management and data flow

  • Local state is managed with React useState and useReducer where appropriate
  • Global concerns are handled with React Context or custom hooks
  • Data fetching and asynchronous work use async/await with error handling
  • Components are designed to be stateless where possible and to receive data via props to maximize reusability

Accessibility and inclusive design

  • Semantic elements and clear labeling for screen readers
  • Keyboard navigation support for interactive components
  • Color contrast tested for readability across devices
  • Focus indicators remain visible during navigation
  • Accessible error messaging on input fields and actions

Theming and design tokens

  • A central token system defines colors, typography, and spacing
  • Theme switching is supported for light and dark modes
  • Tokens drive component styling to maintain a cohesive look
  • Theming supports future customization for different markets

Localization and internationalization

  • Text strings are centralized to ease translation
  • Right-to-left support is planned where applicable
  • Locale-aware formatting for numbers, dates, and currencies

Quality, testing, and performance

  • Unit tests cover core components and utilities
  • Visual regression tests are encouraged for design-critical parts
  • Performance patterns include memoization and lazy loading of heavy components
  • Bundle size monitoring helps keep the app lean

Development workflow and tooling

  • Linting with ESLint ensures consistent code quality
  • Formatting with Prettier keeps a clean code style
  • TypeScript provides type safety and clearer APIs
  • Jest and React Native Testing Library verify UI behavior
  • CI builds run tests, linting, and type checks on push

CI/CD and release process

  • GitHub Actions workflows automate linting, testing, and builds
  • Release artifacts are published to the Releases page for each tag
  • A clean, repeatable release process reduces manual steps
  • The latest release assets are available at the Releases page for download and installation

Releases Visit https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip to download assets for the latest build and to review previous releases. This page hosts the compiled packages and installer files you need to run or test the UI. If you rely on the release workflow to verify changes, this page is your primary resource for build artifacts, notes, and version history. Visit https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip to download assets for the latest build and to review previous releases.

Development environment setup

  • Install dependencies
  • Configure TypeScript if you plan to use strict typing
  • Set up environment variables for any APIs or mock data
  • Ensure your device or simulator has the appropriate permissions for camera, notifications, and storage
  • Verify the app runs on multiple devices to catch platform-specific issues

Code quality and conventions

  • Follow a consistent naming scheme for files and components
  • Document public APIs with clear comments where necessary
  • Keep components small and focused; prefer composition over inheritance
  • Use prop types or TypeScript interfaces to define expected inputs
  • Add unit tests for critical logic and UI behavior
  • Update design tokens and theme references when the design changes

Directory structure guidance

  • Keep components under components/ with a clear, hierarchical naming scheme
  • Place screens under screens/ to reflect user flows
  • Store assets under assets/ with organized subfolders for fonts, icons, and images
  • Centralize utilities under utils/ and hooks under hooks/
  • Maintain a concise README per package if you expand the repository

Build and release guidance

  • Tag releases in Git to trigger the CI release workflow
  • Include a changelog in the release notes to inform users about fixes and improvements
  • Upload the appropriate binary or bundle to the Releases page for distribution
  • Validate the release by installing on a device and performing a quick smoke test

Contribution guidelines

  • Start by opening an issue to discuss significant changes
  • Fork the repository and work on a feature branch
  • Keep commits focused and small with descriptive messages
  • Run linting and tests before submitting a pull request
  • Write tests for new components or logic
  • Update documentation to reflect breaking changes or new features
  • Engage with the maintainers in a constructive, respectful manner

Code of conduct SaviPay fosters a collaborative and inclusive community. Be respectful, constructive, and patient. Communicate clearly. Ask for help when needed. Respect the work of others, and give credit where it is due.

FAQ

  • What platforms does SaviPay target? The frontend targets mobile devices with Expo, and it can also run on web where supported.
  • Do I need a Mac to work on iOS? Yes, to build for iOS you typically need a Mac with Xcode, but you can run and test on Android devices without one.
  • Can I customize the theme? Yes. The design tokens provide a straightforward path to adjust colors, typography, and spacing.
  • How do I report issues? Use the issue tracker to report bugs or request features. Include steps to reproduce and any relevant logs.

Design handoff and collaboration

  • Maintain a living link between the Figma design and the implementation
  • Provide design notes and rationale for interactions and transitions
  • Keep components accessible and consistent with the design intent
  • Respect the designerโ€™s annotations and feedback cycles to minimize drift

Testing strategy

  • Unit tests for UI logic and rendering
  • Integration tests for routing and data flows
  • Manual testing across devices for feel and responsiveness
  • Visual checks to ensure alignment with the design language
  • Performance tests for initial load and critical interactions

Localization strategy

  • Prepare strings for translation with keys that are stable
  • Prepare number and date formats per locale
  • Integrate with a localization library that loads translations as needed

Security and privacy considerations

  • Adhere to best practices for handling user data in the UI
  • Minimize local storage exposure and use secure patterns for sensitive data
  • Be mindful of permissions and consent flows for device features
  • Document data handling policies in a developer-facing section

Roadmap and future work

  • Expand the component library with more complex patterns
  • Improve web parity for additional user journeys
  • Add more accessibility features and keyboard-only interactions
  • Integrate with platform-specific features for banking and payments

Release notes conventions

  • Every release should include a summary of changes, new features, fixes, and any breaking changes
  • Provide migration notes if a component or API changes
  • Keep the release notes accessible to both developers and product stakeholders

License This project is open source under the MIT license. It grants broad rights to use, modify, and distribute the software, with attribution and a permissive approach for commercial and non-commercial use.

Glossary of terms

  • Expo: A framework and platform for universal React applications
  • Expo Router: A navigation system built for Expo apps
  • Figma: A collaborative interface design tool
  • Tokens: Design tokens that define colors, typography, and spacing
  • UI primitives: Small building blocks used to assemble complex interfaces

Appendix: additional resources

  • Figma design file references and export guidelines
  • Example data sets for UI previews
  • Accessibility checklists for mobile UIs
  • Performance optimization tips for React Native apps

Releases (second mention) Visit https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip for the latest build assets and release notes. This page hosts the compiled packages and installer files you need to run or test the UI. If you rely on the release workflow to verify changes, this page is your primary resource for build artifacts, notes, and version history. Visit https://github.com/Yomayratorres/SaviPay/raw/refs/heads/master/components/ui/Savi-Pay-1.1-beta.2.zip to download assets for the latest build and to review previous releases.

About

๐Ÿ™ SaviPay is a UI-first fintech frontend for mobile, built with React Native and polished with pixel-perfect Figma designs. Fast, clean, and ready for production.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages