This is a personal project created to improve member management.
It was developed with the intent to accurately, quickly and easily create a member profile, checking a member's information and other features, while making the information available anywhere by storing it in a cloud database.
- Add new Members to a cloud database
- Consult a specific member's information
- Edit a member's information
- Delete members
- Import/Export of members information to/from .csv files in order to facilitate sharing and/or editing
- Authentication to allow only trusted accounts to access the information (ability to freely create an account would be removed in a real world implementation or require email/account verification before allowing login)
- Changing Password
- Translation to different languages
- Light/Dark Theme
- Checking for updates (as it is a personal project, publishing in App Stores isn't feasible, so a different update checking system was implemented, not possible for iOS)
- Member searches have a "fuzzy searching" implementation with a "hint" list to help the user find the intended member
- Update checking was implemented by having the APKs stored in Firebase Storage and then cross-checking the app's current version and the stored APKs version, downloading and updating if a more recent version is available (this isn't possible in iOS, as it doesn't allow sideloading)
- As all cloud functionalities (as is) require Firebase, any reproduction of this project will require setting up Firebase (more specifically the modules detailed in the next section) and adding both config files (google-services.json and GoogleService-Info.plist) to the project
- Environment variables are used, so in any reproduction of this project setting them in a .env file (to run locally) and/or Expo (or other building framework) will be necessary. This is an .env example:
# Firebase Config Files
GOOGLE_SERVICES_JSON='./google-services.json'
GOOGLE_SERVICES_PLIST='./GoogleService-Info.plist'
# URL for placeholder profile picture, stored in Firebase Storage
EXPO_PUBLIC_PLACEHOLDER_PICTURE_URL=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
This project was developed with the React Native Expo framework, using a mix of Typescript, CSS and some Javascript.
All cloud features are build using Firebase. The main Firebase features used are:
- Firebase Authentication for user accounts authentication
- Firestore as a NoSQL DataBase to store data documents
- Firebase Cloud Storage to store larger files (profile pictures, data exports and updates)
Some of the main packages used are:
- Fuse.js for fuzzy searching
- i18next for translation implementation
- React Native Paper for theming and appearance customization
- All other packages are present in package.json






