Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@ on:
#A workflow run is made up of one or more jobs. Jobs run in parallel by default.
jobs:

Unit_Tests:
#The type of machine to run the job on. [windows,macos, ubuntu , self-hosted]
runs-on: ubuntu-latest
#sequence of tasks called
steps:
# The branch or tag ref that triggered the workflow will be checked out.
# https://github.com/actions/checkout
- uses: actions/checkout@v1
# Setup a flutter environment.
# https://github.com/marketplace/actions/flutter-action
- uses: subosito/flutter-action@v1.4.0
with:
flutter-version: '1.20.1'
- run: flutter pub get
# run static analysis code
# - run: flutter analyze
# run flutter widgets tests and unit tests
- run: flutter test
# Unit_Tests:
# #The type of machine to run the job on. [windows,macos, ubuntu , self-hosted]
# runs-on: ubuntu-latest
# #sequence of tasks called
# steps:
# # The branch or tag ref that triggered the workflow will be checked out.
# # https://github.com/actions/checkout
# - uses: actions/checkout@v1
# # Setup a flutter environment.
# # https://github.com/marketplace/actions/flutter-action
# - uses: subosito/flutter-action@v1.4.0
# with:
# flutter-version: '1.22.5'
# - run: flutter pub get
# # run static analysis code
# # - run: flutter analyze
# # run flutter widgets tests and unit tests
# - run: flutter test



Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
# if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
name: Build APK
needs: [Unit_Tests]
# needs: [Unit_Tests]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
Expand All @@ -75,7 +75,7 @@ jobs:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- uses: subosito/flutter-action@v1.4.0
with:
flutter-version: '1.20.1'
flutter-version: '1.22.5'
- run: flutter build apk --split-per-abi
env:
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
Expand Down
1 change: 1 addition & 0 deletions .zshrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export LANG=en_US.UTF-8
90 changes: 2 additions & 88 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,102 +23,16 @@
<a href='https://play.google.com/store/apps/details?id=com.orbital.instasmart&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/ height="100"></a>
<br />

---


## About
InstaSmart is a Flutter app to easily plan and beautify your Instagram feed.
<br>
<br>
A project built for [Orbital](https://orbital.comp.nus.edu.sg/) 2020 (CP2106: Independent Software Development Project Module), InstaSmart attained the highest level of achievement - [Artemis](https://nusskylab-dev.comp.nus.edu.sg/public_views/public_projects) - in the module. The project report with all the project specifications and testing details can be found [here](https://docs.google.com/document/d/1zLvbWGw6q75HyQKes5T7n6x1hmygoy8gyzssS_MPyGE/edit?usp=sharing).

## Features

<img align="right" src="assets/gifs/Explore Frames.gif" height="400">

* **Explore Frames**
- **Browse and Filter:** Users can browse through a collection of frames. They can also filter the frames based on a set of themes like ‘minimalist’ or ‘landscape’.
- **Liking Functionality:** Frames can be ‘liked’ and ‘unliked’ by the user. The total likes across all users will be stored in the database and will be displayed on each frame.
- **Order:** The frames will be ordered based on popularity (number of likes).
- **Liked Frames:** A separate page for ‘liked frames’ which will show all the frames liked by a user.
</br></br></br></br></br></br></br></br></br></br>

* **Generate Grids**
- **Add Images:** Tapping a frame opens the generate grid page. Users can then add images to the frame from their gallery and see how the grid will look like
Reorder: The images can be reordered in the grid by dragging and dropping and finalising the grid.
- **Save to Gallery:** Once the grid is finalised, the user can save the grid to the gallery by clicking a button. This will result in the frame being split into parts and applied as background to each of the images which are then saved.
- **Add to Preview:** The grid can also be added to the Preview Screen to see how it will look on an instagram feed.
- **Post to Instagram:** All images can be directly posted to Instagram from the app. The order to post will be shown and the user simply has to tap the images in the correct order to post.

<table>
<tr>
<td align="center">Create Grids</td>
<td align="center">Save to Gallery</td>
<td align="center">Post to Instagram</td>
</tr>
<tr>
<td valign="top"><img src="assets/gifs/Create Grid.gif" height="400"></td>
<td valign="top"><img src="assets/gifs/Save Grid.gif" height="400"></td>
<td valign="top"><img src="assets/gifs/Post Grid.gif" height="400"></td>
</tr>
</table>

</br>

<img align="right" src="assets/gifs/Feed Preview.gif" height="400">


* **Feed Preview**
- **Plan Instagram Feed:** Users can plan their feed by previewing how their Insta feed will look like after uploading their photos.
- **Add Images:** Users can add multiple photos from their gallery.
- **Reorder:** The images can be reordered in the grid by dragging and dropping and finalising the grid.
- **Others:** Double tapping a photo opens an enlarged zoomable popup of it. Clicking on a photo results in a Popup allowing the users to do the following:
* Schedule a post by creating a reminder to post a photo.
* Post the photo directly to Instagram.
* Save photo to local gallery.
* Delete the photo from the feed.
</br></br></br></br>
* **Reminders**
- **Scheduled:** A list of reminders for scheduled posts will be shown. Users can check their reminders for each day by selecting the corresponding date on the Calendar.
- **Update:** Option to update the reminder caption and time.
- **Delete:** Delete reminders.
- **Notifications:** The app will notify the user to post the photo based on the reminder time set.

* **Dark Mode:** Use the app with an elegant dark theme.

<table>
<tr>
<td align="center">Reminders</td>
<td align="center">Notifications</td>
<td align="center">Dark Mode</td>
</tr>
<tr>
<td valign="top"><img src="assets/gifs/Reminders.gif" height="400"></td>
<td valign="top"><img src="assets/gifs/Notifications.gif" height="400"></td>
<td valign="top"><img src="assets/gifs/Dark Mode.gif" height="400"></td>
</tr>
</table>

## Screenshots
<p align="center">
<img src="assets/screenshots/1.png" width="180">
<img src="assets/screenshots/2.png" width="180">
<img src="assets/screenshots/3.png" width="180">
<img src="assets/screenshots/4.png" width="180">
</p>
<p align="center">
<img src="assets/screenshots/5.jpg" width="180">
<img src="assets/screenshots/6.png" width="180">
<img src="assets/screenshots/7.png" width="180">
<img src="assets/screenshots/8.png" width="180">
</p>
InstaSmart is a Flutter app to easily plan and beautify your Instgram feed. More details can be found [here](https://docs.google.com/document/d/1zLvbWGw6q75HyQKes5T7n6x1hmygoy8gyzssS_MPyGE/edit?usp=sharing).


## Built With
* [Flutter](https://flutter.dev/)
* [Firebase](https://firebase.google.com/)
* [GitHub Actions](https://github.com/features/actions)
- [Flutter actions](https://github.com/marketplace/actions/flutter-action)
- [Android Emulator Runner](https://github.com/ReactiveCircus/android-emulator-runner)

## License
Distributed under the MIT License. See ```LICENSE``` for more information.
Expand Down
Binary file removed assets/gifs/Create Grid.gif
Binary file not shown.
Binary file removed assets/gifs/Dark Mode.gif
Binary file not shown.
Binary file removed assets/gifs/Explore Frames.gif
Binary file not shown.
Binary file removed assets/gifs/Feed Preview.gif
Binary file not shown.
Binary file removed assets/gifs/Notifications.gif
Binary file not shown.
Binary file removed assets/gifs/Post Grid.gif
Binary file not shown.
Binary file removed assets/gifs/Reminders.gif
Binary file not shown.
Binary file removed assets/gifs/Save Grid.gif
Binary file not shown.
Binary file added assets/images/apple-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/screenshots/1.png
Binary file not shown.
Binary file removed assets/screenshots/2.png
Binary file not shown.
Binary file removed assets/screenshots/3.png
Binary file not shown.
Binary file removed assets/screenshots/4.png
Binary file not shown.
Binary file removed assets/screenshots/5.jpg
Binary file not shown.
Binary file removed assets/screenshots/6.png
Binary file not shown.
Binary file removed assets/screenshots/7.png
Binary file not shown.
Binary file removed assets/screenshots/8.png
Binary file not shown.
2 changes: 1 addition & 1 deletion ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
platform :ios, '9.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
20 changes: 13 additions & 7 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,8 @@ PODS:
- AppAuth/ExternalUserAgent (= 1.4.0)
- AppAuth/Core (1.4.0)
- AppAuth/ExternalUserAgent (1.4.0)
- apple_sign_in (0.0.1):
- Flutter
- BoringSSL-GRPC (0.0.7):
- BoringSSL-GRPC/Implementation (= 0.0.7)
- BoringSSL-GRPC/Interface (= 0.0.7)
Expand Down Expand Up @@ -396,7 +398,7 @@ PODS:
- image_picker (0.0.1):
- Flutter
- leveldb-library (1.22)
- multi_image_picker (4.7.13):
- multi_image_picker (4.7.14):
- BSImagePicker (~> 2.10.3)
- Flutter
- nanopb (1.30905.0):
Expand All @@ -419,13 +421,14 @@ PODS:
- FBSDKCoreKit
- FBSDKShareKit
- Flutter
- sqflite (0.0.1):
- sqflite (0.0.2):
- Flutter
- FMDB (~> 2.7.2)
- FMDB (>= 2.7.5)
- url_launcher (0.0.1):
- Flutter

DEPENDENCIES:
- apple_sign_in (from `.symlinks/plugins/apple_sign_in/ios`)
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
- esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`)
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
Expand Down Expand Up @@ -480,6 +483,8 @@ SPEC REPOS:
- PromisesObjC

EXTERNAL SOURCES:
apple_sign_in:
:path: ".symlinks/plugins/apple_sign_in/ios"
cloud_firestore:
:path: ".symlinks/plugins/cloud_firestore/ios"
esys_flutter_share:
Expand Down Expand Up @@ -524,6 +529,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
apple_sign_in: 7716c7ddfa195aeab7dec0dc374ef4ff45d1adb4
BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879
BSGridCollectionViewLayout: 333dcb457a5a3bdd9212607ab5756553dcfe06cb
BSImagePicker: 07404254f2fcdaf5a2eb403c0f8c337267ce8738
Expand Down Expand Up @@ -560,7 +566,7 @@ SPEC CHECKSUMS:
image_gallery_saver: 259eab68fb271cfd57d599904f7acdc7832e7ef2
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7
multi_image_picker: fd16be811b37ab030f72bf5c1c48b3a174254d13
multi_image_picker: c068931d08240565e0615fb01437d16984909183
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
Expand All @@ -569,9 +575,9 @@ SPEC CHECKSUMS:
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
social_share_plugin: f9dc03c1137b137e6efb1f3608f449c4cb153a7a
sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef

PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa

COCOAPODS: 1.9.3
COCOAPODS: 1.10.0
Loading