Skip to content

Turkcell Kotlin Bootcamp Final Project. This is an example project with an HTML parser using the MVVM architecture. It includes the latest raffles, categorizes them, and allows users to add their favorite raffles to their favorites list. Additionally, the data is refreshed every 3 hours.

Notifications You must be signed in to change notification settings

akinemreyazici/Raffles_App

Repository files navigation

Raffles App

Raffles App is a mobile application that allows users to access and view information about raffles using data from the website "kimkazandi.com". The app utilizes JSOUP for web scraping, follows the MVVM architecture pattern, and includes features such as a Drawer Navigation menu, Room Database, and SharedPreferences.

Technologies Used

The following technologies were utilized in the development of the Raffles App:

  • MVVM (Model-View-ViewModel): This architectural pattern was employed to separate the app's components into three distinct layers. The Model represents the data and business logic, the View is responsible for displaying the user interface, and the ViewModel acts as a mediator between the Model and View, handling data binding and user interactions.

  • JSOUP: JSOUP is a library used for web scraping and parsing HTML documents. In this project, JSOUP was utilized to extract the relevant data from the "kimkazandi.com" website by traversing and manipulating the HTML structure.

  • Drawer Navigation Menu: The app features a Drawer Navigation menu, providing users with easy navigation and access to different sections of the application. It allows users to switch between different views and functionalities within the app.

  • Room Database: Room is an Android library that provides an abstraction layer over SQLite, enabling efficient database operations. In this project, Room Database was utilized to store and retrieve raffle data locally. The app utilizes Room to cache and persist the fetched raffle information, enabling quick and offline access to the data.

  • SharedPreferences: SharedPreferences is an Android framework feature used for storing small amounts of key-value data. In this project, SharedPreferences were utilized to store user preferences, such as the user's favorite raffles. This allows users to maintain a personalized list of favorite raffles across app sessions.

Features

  • Fetching and Parsing Data : The app retrieves raffle information from "kimkazandi.com" by scraping the relevant sections of the website using JSOUP. This data is then parsed and stored in a Room Database for quick and efficient access.
  • Data Refresh : If the last login was more than 3 hours ago, the app clears the local database and fetches updated data from the website, effectively refreshing the information. If the time elapsed is less than 3 hours, the app directly reads the data from the local database.
  • Raffle Listing and Categorization : Users can view a list of raffles, which are categorized based on their respective sections on the website. The app provides a user-friendly interface for browsing and searching through the raffle listings.
  • Raffle Details : Tapping on a specific raffle in the list opens a detailed view, similar to the detail page on the website. Users can view all the relevant information and details about the selected raffle.
  • Favorite Raffles : Users have the option to add raffles to their favorites list. These favorite raffles are displayed separately in the Drawer Navigation menu for quick access and easy reference.

Website Images

sitess1 sitess2 sitess3

Project Images

projess1 projess2 projess3 projess4 projess5 projess6 projess7 projess8 projess9

Project Realization

gif1 gif2 gif3

About

Turkcell Kotlin Bootcamp Final Project. This is an example project with an HTML parser using the MVVM architecture. It includes the latest raffles, categorizes them, and allows users to add their favorite raffles to their favorites list. Additionally, the data is refreshed every 3 hours.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages