Skip to content

Reannn22/Bank-Mandiri-Internship-Task-Final-Task-UI-and-Design-Pattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

News Room

GitHub repo size

πŸ“Œ Overview

News Room is a modern and lightweight news application developed for Android using Flutter. This project was created as part of the Mandiri Virtual Internship Program, implementing Clean Architecture principles and the MVVM pattern to ensure scalability and maintainability.

πŸ“₯ Download Latest APK

✨ Features

βœ… Latest News Feed – Infinite scrolling for real-time news updates.
βœ… News Categories – Business, Technology, Sports, and more.
βœ… Bookmark Articles – Save your favorite articles for later.
βœ… Search Functionality – Quickly find news based on keywords.
βœ… User-Friendly UI – Simple and intuitive design.

πŸ› οΈ Tech Stack

  • Flutter & Dart (Framework & Language)
  • Provider (State Management)
  • Dio (Network Calls)
  • SQLite (Local Storage)
  • GetIt (Dependency Injection)

πŸ›οΈ Architecture

This app follows the Clean Architecture approach with the MVVM (Model-View-ViewModel) pattern:

lib/
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ repositories/
β”‚   └── sources/
β”œβ”€β”€ domain/
β”‚   β”œβ”€β”€ entities/
β”‚   β”œβ”€β”€ repositories/
β”‚   └── usecases/
β”œβ”€β”€ presentation/
β”‚   β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ widgets/
β”‚   └── viewmodels/
└── core/
    β”œβ”€β”€ utils/
    β”œβ”€β”€ constants/
    └── themes/

πŸš€ Getting Started

Prerequisites

Before running the project, ensure you have:

  • Flutter SDK installed
  • Android Studio / VS Code
  • Git

Installation

git clone https://github.com/Reannn22/Bank-Mandiri-Internship-Task-Final-Task-UI-and-Design-Pattern.git
cd Bank-Mandiri-Internship-Task-Final-Task-UI-and-Design-Pattern
flutter pub get
flutter run

πŸ› οΈ Design Patterns Used

  • Repository Pattern
  • Factory Pattern
  • Singleton Pattern
  • Observer Pattern
  • Dependency Injection

πŸ–₯️ Screenshots

Home Screen Article Detail
Screenshot_2025-03-30-23-23-03-26_4f5da45ba9f8f23938554d03350e5c8d~3 Screenshot_2025-03-30-23-23-12-59_4f5da45ba9f8f23938554d03350e5c8d~2

πŸ“Š Code Standards

βœ… Followed Dart's official style guide
βœ… Proper error handling
βœ… Meaningful variable and function names
βœ… Well-structured folder architecture
βœ… Code comments for complex logic

πŸ“ˆ Performance Optimization

πŸ”Ή Lazy loading of images
πŸ”Ή Caching mechanisms to improve speed
πŸ”Ή Efficient state management
πŸ”Ή Optimized build methods

βœ… Testing

The application includes:

  • Unit Tests
  • Widget Tests
  • Integration Tests

🀝 Contributing

We welcome contributions! Feel free to:

  1. Fork the repository
  2. Create a new feature branch (git checkout -b feature-branch)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to GitHub (git push origin feature-branch)
  5. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License – see the LICENSE file for details.

πŸ“’ Acknowledgments

  • News API – For providing the news data
  • Bank Mandiri – For the internship opportunity
  • Flutter Community – For resources and support

πŸ“¬ Contact

Reyhan Capri Moraga – @reannn22

πŸ“Œ Project Link: GitHub Repository