2025

Mobile Inventory Management App

An Android mobile application with SQLite database integration, user authentication, and SMS notifications for tracking inventory items with real-time updates and permission handling

Tech Stack

JavaAndroid SDKAndroid StudioSQLiteRecyclerViewMaterial DesignSharedPreferences

Context

The Problem

Small businesses and individuals need mobile-first inventory management tools that work offline, support quick data entry, and send alerts for low stock levels. Traditional desktop solutions lack the accessibility and real-time notification capabilities required for mobile workflows.

Constraints

  • Android platform with SQLite for local data persistence
  • User authentication with login and account creation
  • CRUD operations for inventory items in grid format
  • Runtime permission handling for SMS notifications
  • Responsive UI supporting different screen sizes
  • Offline-first architecture without requiring internet connectivity

Stakes

Academic project for CS-360 (Mobile Architecture and Programming) demonstrating Android development, database management, permissions, and mobile UI/UX design

My Role

Title

Android Developer

Team

Academic Project (Individual)

Ownership

Complete development of Android app: UI design, SQLite schema, authentication logic, CRUD operations, SMS integration, and permission handling

Approach & Key Decisions

Built a native Android app using Java and Android Studio with SQLite for offline data storage, implementing user authentication, RecyclerView with custom adapter for inventory grid display, runtime SMS permissions, and material design components for modern UI.

SQLite database for local inventory storage

SQLite provides fast, reliable offline data persistence without requiring server infrastructure, ensuring the app works without internet connectivity and reduces latency for CRUD operations.

Java with Android SDK for native app development

Java offers mature Android tooling, extensive documentation, and better stability compared to newer frameworks, making it ideal for academic projects requiring robust functionality.

RecyclerView with custom adapter for inventory grid

RecyclerView efficiently handles large datasets with view recycling, reducing memory overhead and providing smooth scrolling for inventory lists compared to ListView.

Runtime permission requests for SMS functionality

Android 6.0+ requires runtime permissions for dangerous permissions like SMS. Implementing proper permission handling ensures compliance with Android security model and better user experience.

Material Design components for consistent UI

Material Design provides familiar, accessible UI patterns with proper touch targets, ripple effects, and elevation, creating professional-looking interfaces that follow Android guidelines.

Modular database helper class for CRUD abstraction

Separating database logic into a helper class with methods for create, read, update, delete operations improves code maintainability and enables independent testing of database functionality.

Alternatives Considered

Considered using Room persistence library for more modern database abstraction but chose raw SQLiteOpenHelper to demonstrate fundamental understanding of Android database operations

Challenges & Solutions

Challenge

Implementing secure user authentication without backend server

Solution

Built local authentication system using SQLite to store hashed passwords with salting, validating credentials on login, and maintaining session state with SharedPreferences for persistent login across app restarts.

Challenge

Handling dynamic runtime permissions for SMS without disrupting user flow

Solution

Implemented permission request flow that checks for SMS permission before sending notifications, displays rationale dialog if previously denied, and gracefully handles both grant and deny scenarios with appropriate fallback behavior.

Challenge

Displaying inventory items in responsive grid with add/edit/delete actions

Solution

Used RecyclerView with GridLayoutManager for flexible column counts based on screen size, implemented custom ViewHolder with onClickListeners for edit/delete, and added FloatingActionButton for adding new items.

Challenge

Maintaining data consistency during concurrent CRUD operations

Solution

Implemented database transactions for atomic updates, used SQLite constraints (UNIQUE, NOT NULL) for data validation, and added proper error handling with rollback logic to prevent data corruption.

Challenge

Creating intuitive UI for both beginners and experienced users

Solution

Designed clean interface with large touch targets, clear labels, confirmation dialogs for destructive actions (delete), and visual feedback (Snackbars) for all user actions to ensure discoverability and prevent errors.

Outcomes & Impact

Android Development Proficiency

Demonstrated mastery of Android SDK, SQLite database management, and mobile UI/UX design principles

Database Operations

Full CRUD functionality with SQLite including user authentication, inventory management, and data validation

Permission Handling

Runtime permission requests for SMS with proper rationale dialogs and graceful handling of grant/deny scenarios

User Interface

Material Design components with RecyclerView grid, FloatingActionButton, dialogs, and responsive layouts for different screen sizes

Offline Capability

Fully functional without internet connectivity, leveraging local SQLite storage for all data operations

SMS Notifications

Automated alerts for low inventory levels sent via SMS when user grants permission

Project Links