Skip to content

Commit 2049516

Browse files
committed
Certain final optimizations, and README finalized.
1 parent 6aaf3a1 commit 2049516

20 files changed

+181
-68
lines changed

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"name": "ycombinator_hacker_news",
99
"request": "launch",
1010
"type": "dart",
11-
"flutterMode": "release"
11+
"flutterMode": "debug"
1212
}
1313
]
1414
}

README.md

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,80 @@
22

33
A Flutter based client application functioning as a Real-Time News Forum, using:
44

5-
1. [Bloc pattern](https://bloclibrary.dev) and [ChangeNotifier](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html) for State Management.
5+
1. [Bloc pattern](https://bloclibrary.dev) architecture and [ChangeNotifier](https://api.flutter.dev/flutter/foundation/ChangeNotifier-class.html) for State Management.
66
2. Both [Local Hive Database](https://pub.dev/packages/hive) and [Cloud Firebase-](https://firebase.google.com/)[Authenticated](https://firebase.google.com/products/auth), [Firestore Database](https://firebase.google.com/products/firestore), as per need.
7+
3. Utilizes [Material Design](https://material.io/develop/flutter) elements for UI building, as well as various other Open Source Packages as [listed below](#dependencies-used).
78

89
Acts as a client for [YcCombinator's Hacker News API](https://github.com/HackerNews/API).
910

10-
## Getting Started
11+
Download the Android App [`.apk` directly](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Output/HackerNews.apk), or compressed version from [Releases Page](https://github.com/Dhi13man/reservation_manager_firebase/releases/tag/0.5.0-android).
1112

12-
This project is a starting point for a Flutter application.
13+
## Features
1314

14-
A few resources to get you started if this is your first Flutter project:
15+
1. Firebase based Google and Email Authentication, also with option to locally.
16+
2. Firestore or Hive based dynamic database for reservations with one tap sorting.
17+
3. Lazy Loading of posts and comments from API for efficiency.
18+
4. Storing user activity and favorite posts.
19+
5. Light and Dark Themes (toggleable by tapping icon)
1520

16-
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
17-
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
21+
## Screenshots
1822

19-
For help getting started with Flutter, view our
20-
[online documentation](https://flutter.dev/docs), which offers tutorials,
21-
samples, guidance on mobile development, and a full API reference.
23+
Authentication Screen(Light): | Authentication Screen(Dark):
24+
----------------|----------------------------
25+
[<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/LoginScreen_Light.jpg" alt="Authentication Screen(Light)">](https://raw.githubusercontent.com/Dhi13man/SafeSyncIoT/main/Screenshots/LoginScreen_Light.jpg) | [<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/LoginScreen_Dark.jpg" alt="Authentication Screen(Dark)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/LoginScreen_Dark.jpg)
26+
27+
News Feed Screen(Light): | News Feed Screen(Dark):
28+
--------------------------------------|----------------------
29+
[<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/NewsFeed_Light.jpg" alt="News Feed Screen(Light)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/NewsFeed_Light.jpg) | [<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/NewsFeed_Dark.jpg" alt="News Feed Screen(Dark)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/NewsFeed_Dark.jpg)
30+
31+
View Post Screen(Light): | View Post Screen(Dark):
32+
--------------------------------------|----------------------
33+
[<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ViewPost_Light.jpg" alt="View Post Screen(Light)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ViewPost_Light.jpg) | [<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ViewPost_Dark.jpg" alt="View Post Screen(Dark)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ViewPost_Dark.jpg)
34+
35+
Clicked Posts List Screen(Light): | Clicked Posts List Screen(Dark):
36+
--------------------------------------|----------------------
37+
[<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ClickedPosts_Light.jpg" alt="Clicked Posts List Screen(Light)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ClickedPosts_Light.jpg) | [<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ClickedPosts_Dark.jpg" alt="Clicked Posts List Screen(Dark)">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/ClickedPosts_Dark.jpg)
38+
39+
Animated Post URL opening Example:|
40+
------------------------------|
41+
[<img height="600" width="350" src="https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/PostClickDemo.mp4" alt="Animated Post URL opening Example">](https://raw.githubusercontent.com/Dhi13man/reservation_manager_firebase/main/Screenshots/PostClickDemo.mp4) |
42+
43+
---
44+
45+
## Dependencies Used
46+
47+
1. [material](https://material.io/develop/flutter) for UI
48+
49+
2. [cupertino](https://flutter.dev/docs/development/ui/widgets/cupertino) and [cupertino_icons](https://pub.dev/packages/cupertino_icons) for UI
50+
51+
3. [simple_animations](https://pub.dev/packages/simple_animations) for UI animations
52+
53+
4. [page_transition](https://pub.dev/packages/page_transition) for page transition animations
54+
55+
5. [flutter_spinkit](https://pub.dev/packages/flutter_spinkit) for better Animated Loading indicators.
56+
57+
6. [firebase_core](https://pub.dev/packages/firebase_core) and supporting Libraries for Cross Platform Authentication and Database backend
58+
1. [firebase_auth](https://pub.dev/packages/firebase_auth) for Firebase Authentication System interfacing
59+
2. [cloud_firestore](https://pub.dev/packages/cloud_firestore) for Firebase Firestore interfacing
60+
3. [google_sign_in](https://pub.dev/packages/google_sign_in) for Google Sign in using Firebase
61+
62+
7. [hive](https://pub.dev/packages/hive) for local NoSQL Database
63+
1. [hive_flutter](https://pub.dev/packages/hive_flutter) for initializing Hive when OS not known.
64+
2. [sqflite](https://pub.dev/packages/sqflite) just for getting default database storage location.
65+
3. [path_provider](https://pub.dev/packages/path_provider) for getting default database storage location in Desktop systems.
66+
67+
8. [bloc](https://pub.dev/packages/bloc) for better Architecture and State Management
68+
1. [flutter_bloc](https://pub.dev/packages/flutter_bloc) for interfacing blocs faster and better in Flutter
69+
2. [equatable](https://pub.dev/packages/equatable) for debugging blocs and proper state tracking
70+
71+
9. [provider](https://pub.dev/packages/provider) for less intensive State Management
72+
73+
10. [flutter_form_builder](https://pub.dev/packages/flutter_form_builder) for easily building forms for Authentication and Database editing front end
74+
75+
11. [flutter_signin_button](https://pub.dev/packages/flutter_signin_button) for a pre-made Google sign-in button
76+
77+
12. [data_connection_checker](https://pub.dev/packages/data_connection_checker) for checking internet connections before making network calls, and throwing appropriate erros if no network
78+
79+
13. [url_launcher](https://pub.dev/packages/url_launcher) for launching URLs associated with posts.
80+
81+
14. [html](https://pub.dev/packages/html) for parsing comments, which are scraped with inline html.

Screenshots/ClickedPosts_Dark.jpg

333 KB
Loading

Screenshots/ClickedPosts_Light.jpg

327 KB
Loading

Screenshots/LoginScreen_Dark.jpg

152 KB
Loading

Screenshots/LoginScreen_Light.jpg

147 KB
Loading

Screenshots/NewsFeed_Dark.jpg

347 KB
Loading

Screenshots/NewsFeed_Light.jpg

304 KB
Loading

Screenshots/PostClickDemo.mp4

3.86 MB
Binary file not shown.

Screenshots/ViewPost_Dark.jpg

1 MB
Loading

0 commit comments

Comments
 (0)