Back to projects
React Native mobile application

BD Nursing Preparation App

A cross-platform nursing exam preparation application built with React Native and Expo, featuring dynamic MCQ generation, JWT authentication, real-time leaderboards, detailed analytics, offline support, and a scalable Node.js/Express backend with MongoDB Atlas.

React NativeExpoTypeScriptNode.jsExpress.jsMongoDB AtlasJWTZustandReact QueryAxiosReact NavigationTailwind CSSReact Hook FormZodAsyncStorageExpo SecureStoreLottie

Overview

BD Nursing Preparation App is a modern cross-platform mobile application designed for nursing students and professionals preparing for competitive exams. The application delivers randomized MCQ and True/False examinations, secure authentication, real-time rankings, detailed result analytics, exam history, and offline capabilities to provide an engaging and reliable learning experience across Android, iOS, and Web.

Problem

Nursing exam candidates often rely on static question banks and paper-based materials that provide limited practice, no performance tracking, and no competitive learning environment. Existing solutions frequently lack secure authentication, detailed analytics, progress history, and cross-platform accessibility.

Solution

Developed a full-stack examination platform that automatically generates randomized exams, securely authenticates users using JWT, tracks every exam attempt, calculates detailed performance metrics, maintains weekly leaderboards, stores complete exam history, supports offline usage through local caching, and delivers a modern mobile experience using React Native and Expo. Developed a full-stack examination platform that automatically generates randomized exams, securely authenticates users using JWT, tracks every exam attempt, calculates detailed performance metrics, maintains weekly leaderboards, stores complete exam history, supports offline usage through local caching, and delivers a modern mobile experience using React Native and Expo.

Architecture

• React Native (Expo) cross-platform frontend • TypeScript-based application architecture • Zustand for lightweight global state management • React Query for server state and caching • Axios API layer with retry mechanism • Node.js + Express REST API • JWT authentication with secure token storage • MongoDB Atlas cloud database • Modular feature-based project structure • Offline caching using AsyncStorage and Expo SecureStore

Database Design

Collections include: • Users • Exams • Questions • Exam Attempts • Results • Leaderboard • Notifications • Authentication Tokens Relationships: • One user can attempt multiple exams. • Each exam contains randomized MCQ and True/False questions. • Every attempt stores answers, score, duration, and result analytics. • Leaderboard rankings are generated from completed attempts.

API Design

RESTful API (v1) Authentication • Login • Register • JWT Authentication Exam APIs • Generate Exam • Submit Exam • Get Result • Get Exam History Leaderboard APIs • Weekly Leaderboard • Personal Rankings Notification APIs • User Notifications Features • JWT Authorization • Error Handling • Retry Logic • Versioned REST API • JSON Responses

Results

  • Developed a complete cross-platform nursing exam preparation platform.
  • Implemented secure JWT authentication with persistent login sessions.
  • Built dynamic randomized exam generation.
  • Delivered detailed result analytics and performance tracking.
  • Implemented real-time leaderboard functionality.
  • Created complete exam history management.
  • Added offline support using local caching.
  • Designed scalable REST APIs with Express.js.
  • Built a responsive and modern React Native user interface.
  • Deployed a maintainable modular architecture for future scalability.

Lessons Learned

  • Built production-ready React Native applications with Expo.
  • Designed scalable REST APIs using Express.js.
  • Improved API communication using React Query and Axios.
  • Implemented secure mobile authentication using JWT and SecureStore.
  • Learned efficient global state management with Zustand.
  • Designed offline-first mobile experiences.
  • Created modular and maintainable application architecture.
  • Optimized mobile performance through caching and asynchronous data loading.
  • Managed cloud database integration with MongoDB Atlas.
  • Strengthened full-stack development skills across mobile and backend ecosystems.