This repository contains a Record Management System App built with React Native and Expo. The app allows users to create, edit, and view records, including an image picker option for uploading photos.
To run this application locally, follow these steps:
-
Clone the repository:
git clone /~https://github.com/Utkarsh-Singhal-26/record-management-system.git cd record-management-system
-
Install dependencies:
pnpm install
-
Install Expo CLI globally:
pnpm i -g expo-cli
-
Set up Firebase:
- Create a Firebase project and obtain your Firebase configuration.
- Create a
.env.local
file in the root of the project and add your Firebase configuration:
EXPO_PUBLIC_apiKey=your_api_key EXPO_PUBLIC_authDomain=your_auth_domain EXPO_PUBLIC_projectId=your_project_id EXPO_PUBLIC_storageBucket=your_storage_bucket EXPO_PUBLIC_messagingSenderId=your_messaging_sender_id EXPO_PUBLIC_appId=your_app_id
-
Run the application:
npx expo start
This will start the development server. You can run the app on your mobile device using the Expo Go app or on an emulator.
- React Native: A framework for building native apps using React.
- Expo: A framework and a platform for universal React applications.
- NativeWind: A library for styling React Native components with Tailwind CSS.
- Expo Router: For handling navigation within the app.
- Expo Image Picker: For selecting images from the user's device.
- Firebase: A platform for developing mobile and web applications, used for authentication and data storage.
The development process of this app involved the following steps:
- UI Construction: Designed and built the user interface, ensuring a clean and user-friendly experience.
- Navigation Setup: Integrated Expo Router for seamless navigation between pages.
- Firebase Integration: Integrated Firebase for authentication and data storage.
- Record Creation and Editing: Implemented functionality to create and edit records, including an image picker for uploading photos.
- Record Listing: Implemented functionality to list all records.
- Styling: Used NativeWind for consistent and responsive styling across the app.
- File Size Limitations: Be mindful of the image sizes when using the image picker, as large files may affect performance.
- Error Handling: There might be limited error handling for various edge cases, such as network issues or invalid file formats.
- Platform Differences: Some functionalities might behave differently on Android and iOS due to platform-specific restrictions and capabilities.
Feel free to reach out if you have any questions or suggestions!
Happy coding! 📝