mirror of
https://github.com/mudabbir-ahmad/Media-Aggregation-and-Sorting-System.git
synced 2026-10-07 19:40:20 +00:00
2.1 KiB
2.1 KiB
Media Aggregation and Sorting System
This is my final-year mobile app project.
It is an Expo/React Native app that pulls media from multiple sources (device storage, Google Photos picker flow, and NAS) and shows everything in one timeline-style view.
What This Project Does
- Local user accounts (register/login)
- Local SQLite database on-device (
PhotosApp.db) - Service onboarding for:
- Google Photos
- NAS
- iCloud placeholder
- Unified media view with source badges
- Collections/albums screen
- Search screen
- Settings screen for theme, services, and backup options
Current Architecture
App entry and navigation
- Entrypoint is
App.js App.jsinitializes the database, then mounts navigation- Stack flow:
LoginRegisterOnboardingMainTabsSettings
- Bottom tabs in
MainTabs:Library(HomeScreen)Search(SearchScreen)Collections(AlbumsScreen)
Data layer
Database setup lives in src/services/DatabaseService.js.
Tables currently used:
userslinked_accountsmedia
Passwords are hashed with SHA-256 via src/services/CredentialEncryption.js.
Linked account payloads are stored as Base64-encoded JSON strings.
Service/auth layer
Auth services are in src/AUTH/:
GoogleAUTH.jsNASAUTH.jsIOSAUTH.js(placeholder)
Common interface base: src/AUTH/AuthServiceBase.js.
API client wrappers are in src/API/.
Backend (NAS side)
There is a separate Node/Express backend in ServerFiles/server.js.
It handles NAS connection and file operations for the mobile app.
Project Structure
Media-Aggregation-and-Sorting-System/
├── App.js
├── app.json
├── package.json
├── src/
│ ├── API/
│ ├── AUTH/
│ ├── components/
│ ├── screens/
│ └── services/
├── ServerFiles/
│ ├── server.js
│ └── package.json
└── TEST/
Running the Project
Useful scripts:
expo run:android
NAS backend
cd ./ServerFiles
npm i
npm start