Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Jay-byte389/AMS/llms.txt

Use this file to discover all available pages before exploring further.

AMS follows a clear, feature-oriented source layout that separates concerns into discrete directories under src/. The root holds React Native’s standard configuration files while all application code lives inside src/, organised by type — screens, components, navigation, state management, services, constants, and utilities. Understanding this layout makes it easy to locate any piece of logic and to add new features without touching unrelated code.
AMS/
├── App.tsx                    # Root component
├── index.js                   # Entry point
├── app.json                   # App name / displayName
├── package.json
├── tsconfig.json
├── metro.config.js
└── src/
    ├── assets/                # Fonts, icons (SVG), images (PNG)
    ├── components/            # Reusable UI components
    ├── constants/             # Colors, fonts, spacing, typography
    ├── navigator/             # React Navigation stacks & tabs
    ├── redux/
    │   ├── slices/            # Auth, doctors, appointments, snackbar
    │   ├── thunk/             # Async thunks (auth, doctors, appointments)
    │   └── store.js           # configureStore
    ├── screens/               # Full-screen components
    ├── services/              # API clients and storage helpers
    └── utils/                 # Data helpers, time slots, responsive utils

Root Files

App.tsx is the root React component. It wraps the application in SafeAreaProvider, the Redux Provider, and renders AppNavigator alongside the global GlobalSnackbar overlay. index.js is the true entry point — it calls AppRegistry.registerComponent with the app name read from app.json.

src/screens/

Every full-screen UI component lives here. Screens are registered by name in the appropriate navigator and rendered by React Navigation when their route is active.
Screen FilePurpose
RegisterScreen.jsxInitial screen — choose between login and sign-up
LoginScreen.jsxEmail / password login
SignUpScreen.jsxNew account creation form
SetPassword.jsxPassword creation step during sign-up
HomeScreen.jsxMain home dashboard
Doctors.jsxFilterable list of all doctors
DoctorInfo.jsxDetailed doctor profile with ratings and reviews
ScheduleScreen.jsxCalendar and time-slot picker for booking
YourAppoinmentScreen.jsxBooking confirmation / appointment preview
CancelAppointment.jsxAppointment cancellation flow
AllAppointmentsScreen.jsxBottom-tab screen listing all user appointments
Review.jsxPost-appointment review submission
PaymentMethod.jsxPayment method selection
AddCard.jsxDebit / credit card entry form
PaymentSummary.jsxPre-payment order summary
PaymentComplete.jsxPayment success confirmation
ChatScreen.jsxIn-app messaging screen
ProfileScreen.jsxUser profile and settings menu
EditProfileScreen.jsxEdit personal details
SettingScreen.jsxApp settings
NotificationScreen.jsxNotification feed
NotificationSettingScreen.jsxToggle notification preferences
PasswordManager.jsxChange / manage password
PrivacyPolicy.jsxPrivacy policy viewer
HelpCenter.jsxFAQ and support links

src/components/

Reusable UI building blocks that are shared across multiple screens. Each component is a focused, single-responsibility React Native element.
Component FilePurpose
ButtonComp.jsxGeneric touchable button
PrimaryButton.jsxBranded primary action button
CustomInput.jsxStyled text input with validation states
PaymentInput.jsxSpecialised input for card number / CVV fields
SocialButton.jsxOAuth social login button (Google, Facebook)
DoctorCard.jsxCard displaying a doctor’s avatar, name, and specialty
DoctorsHeader.jsxSearch and filter header for the doctors list
HomeHeaders.jsxHeader bar shown on the Home screen
Headers.jsxGeneric back-navigation header
ScheduleHeader.jsxHeader for the scheduling screen
Favourites.jsxFavourited-doctor list component
RatingCard.jsxStar-rating display card
ProfileAvatar.jsxCircular user avatar with initials fallback
ProfileMenuItems.jsxIndividual item row in the profile menu
ProfileMenuList.jsxContainer rendering the full profile menu
SettingsItem.jsxRow component for the settings screen
TabButtons.jsxCustom tab-switcher buttons
GlobalSnackbar.jsxApp-wide snackbar driven by the Redux snackbar slice
PasswordManager/PasswordInput.jsxSecure password input with show/hide toggle

src/navigator/

React Navigation is configured across four navigator files that together form the complete navigation tree.

AppNavigator.jsx

The top-level stack navigator wrapped in NavigationContainer. On mount it dispatches checkAuthSession and hides the boot splash when ready. It routes unauthenticated users to AuthStack and authenticated users to BottomTabsNavigator, and also registers every full-screen modal route (EditProfile, Settings, NotificationSetting, PasswordManager, PrivacyPolicy, HelpCenter, Payment, Debit, PaymentComplete, PaymentSummary).

AuthNavigator.jsx

A native stack navigator with four screens for the authentication flow:
  • RegisterRegisterScreen
  • LoginLoginScreen
  • SignUpSignUpScreen
  • SetPasswordSetPassword

BottomTabsNavigator.jsx

Renders the floating bottom tab bar (blue pill, positioned with react-native-size-matters scaling). The four tabs are:
Tab NameComponentIcon asset
HomeDoctorsStackHome1.png
ChatChatScreenchat.png
ProfileProfileScreenProfile.png
AppointmentsAllAppointmentsScreenAppointment.png

DoctorsStack.jsx

A nested native stack navigator mounted inside the Home tab. It manages the doctor discovery and appointment booking journey: HomeScreenDoctorsInfo (DoctorInfo) → ScheduleYourAppointmentCancelAppointmentReview, with a side-accessible NotificationScreen.

src/redux/

Global application state is managed with Redux Toolkit. The store is composed of four slices, each with a companion async thunk file.

store.js

Created with configureStore, combining all four reducers:
{
  auth:         authReducer,
  doctors:      doctorsReducer,
  snackbar:     snackBarReducer,
  appointments: appointmentReducer,
}

Slices (slices/)

FileState KeyResponsibility
authSlice.jsauthisAuthenticated, current user, loading and error states
doctorSlice.jsdoctorsDoctor list, selected doctor, favourites, loading state
appointmentSlice.jsappointmentsAll appointments, booking in progress, cancellation state
snackBarSlice.jssnackbarSnackbar visibility, message text, and type (success / error)

Thunks (thunk/)

FileAsync Operations
authThunk.jscheckAuthSession, loginUser, registerUser, logoutUser
doctorThunk.jsfetchDoctors, fetchDoctorById
appointmentThunk.jsfetchAppointments, createAppointment, deleteAppointment

src/services/

Thin service modules that abstract all I/O away from the Redux layer.
FilePurpose
api.jsPre-configured Axios instance with baseURL: https://6a61e9edda10c59c180a02b0.mockapi.io
appointmentApi.jsAppointment CRUD functions using the Axios instance
doctorServices.jsDoctor fetch functions using the Axios instance
storage.jsAsyncStorage helpers for persisting and retrieving the auth session

src/constants/

Design tokens and static string values that ensure visual consistency across the app.
FileExports
colors.jsColour palette — primary (#2260FF), secondary, background, error, and more
Fonts.jsLeague Spartan font-family name constants
spacing.jsPadding, margin, and gap scale values
typography.jsFont-size and line-height text-style presets
strings.jsLocalisation-ready static UI strings
border.jsBorder-radius scale values
index.jsBarrel export of all constants

src/utils/

Helper modules providing static data sets, computation utilities, and responsive layout helpers.
FilePurpose
WeekData.jsGenerates the 7-day week strip used by the schedule calendar
timeSlots.jsStatic array of bookable time-slot strings (e.g. 09:00 AM)
responsive.jsConvenience wrappers around react-native-size-matters scaling functions
chatData.jsMock chat conversation data for the Chat screen
notificationData.jsStatic notification feed entries
notification.jsNotification utility helpers
privacyData.jsPrivacy policy text content
HelpData.jsFAQ entries rendered by the Help Center screen
CustomerServiceData.jsCustomer service contact information
Contact.jsContact details data

Configuration Files

FilePurpose
babel.config.jsUses module:@react-native/babel-preset — the standard React Native Babel preset
metro.config.jsExtends the default Metro config to add react-native-svg-transformer, enabling .svg files to be imported as React components
tsconfig.jsonExtends @react-native/typescript-config, adds jest to types, and includes all .ts / .tsx files while excluding node_modules and Pods
.eslintrc.jsExtends @react-native/eslint-config for React Native–aware lint rules
.prettierrc.jsPrettier formatting configuration (defaults from prettier@2.8.8)

Build docs developers (and LLMs) love