A reference Android application for students
An educational example project demonstrating common Android development patterns — authentication, CRUD operations, Firebase integration, and clean layered architecture.
| Feature | Description |
|---|---|
| 🔐 Authentication | User registration & login |
| 👤 User Profile | View and edit profile with image support |
| 🛒 Shopping Cart | Create, view, and manage carts |
| 🍕 Food Management | Add and browse food items |
| 🛡️ Admin Panel | User management for administrators |
| 📷 Image Support | Camera and gallery integration |
| ☁️ Cloud Database | Firebase Realtime Database |
| 💾 Local Storage | SharedPreferences persistence |
| Technology | Details |
|---|---|
| Language | Java 11 |
| Min SDK | 35 (Android 15) |
| Build System | Gradle 8.11.1 |
| UI | Material Design 1.12 |
| Database | Firebase Realtime Database |
| Serialization | Gson 2.11 |
app/src/main/java/com/example/testapp/
│
├── 📂 adapters/ # RecyclerView adapters
├── 📂 models/ # Data models (User, Food, Cart)
├── 📂 screens/ # Activities (UI layer)
├── 📂 services/ # Business logic & Firebase integration
│ └── 📂 Impl/ # Service implementations
└── 📂 utils/ # Validator, ImageUtil, SharedPreferences
- Android Studio (latest stable)
- JDK 11+
- A Firebase project with Realtime Database enabled
# 1. Clone the repository
git clone https://github.com/gilyerm/TestApp.git
# 2. Open in Android Studio
# 3. Add your google-services.json to the app/ directory
# 4. Sync Gradle & Run on emulator/device (API 35+)Note
You must create your own Firebase project and download the google-services.json file from the Firebase Console.
The app follows a layered architecture pattern:
┌─────────────────────────────────────┐
│ Screens (UI) │ ← Activities & user interaction
├─────────────────────────────────────┤
│ Services (Logic) │ ← Interfaces + Implementations
├─────────────────────────────────────┤
│ Models (Data) │ ← POJOs with Identifiable
├─────────────────────────────────────┤
│ Utils (Helpers) │ ← Validation, images, storage
└─────────────────────────────────────┘
| Layer | Responsibility |
|---|---|
| Screens | Activities handling UI and user interaction |
| Services | IUserService, ICartService, IFoodService with concrete implementations |
| Models | POJOs implementing Identifiable for generic CRUD |
| Adapters | RecyclerView adapters for list displays |
| Utils | Validation, image handling, and local storage helpers |
This project is licensed under the MIT License — see the LICENSE file for details.
Made with ❤️ by Gilyerm