Git Product home page Git Product logo

squanchy-flutter's Introduction

Squanchy Flutter [ARCHIVED]

Apache 2 license

Note: this project has been archived an put in read-only mode. No further features nor fixes are coming. If you're interested in taking over as maintainer please get in touch on Twitter.

Squanchy is an open source schedule platform for conferences.

This repository contains the Flutter port of the Squanchy Android app.

The project is maintained by independent contributors.

squanchy-flutter's People

Contributors

mcassiano avatar niamh-power avatar rock3r avatar takhion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

squanchy-flutter's Issues

Display single speaker details

Display speaker details:

  • Name
  • Company name
  • Profile pic
  • Website URL
  • Twitter username

๐Ÿ—’ Displaying multiple speakers' data at once is in a separate ticket, #29

image

Please refer to @ScribblyPixels' design

โš ๏ธ There are no designs for this screen yet

Auto-setup Wi-Fi on iOS 11+

On iOS 11+ it's possible to set up a hotspot for the user. If we have the wifi informations in the app configuration we should be able to offer users to automatically set up the WiFi for them.

๐Ÿ—’ UI is in the onboarding (#46) and in the settings (#49)

๐Ÿ—’ Error UI is handled in #47

Add Wi-Fi setup to settings

The settings screen should display a "configure conference Wi-Fi" item if the device runs iOS 11+ and the app has Wifi configuration data. If the hotspot is already configured on the device, it should be marked as "already done".

โš ๏ธ There is still no designs for this story

โš ๏ธ Blocked by #48 (implementing the WiFi setup code)

๐Ÿ—’ Wi-Fi setup is only available on iOS 11+

๐Ÿ—’ This setting can only be shown if the app has the WiFi configuration data, otherwise it must be hidden.

Implement Search by track

When a user taps one of the tracks in the search screen initial/empty state, all talk-like events pertaining to that track will be shown in the UI

๐Ÿ—’ The rest of the search functionality is implemented in other stories, this is only about track search

Example (Android):

image

โš ๏ธ The above screen is just a mockup as there is no design for this story yet

Please refer to @ScribblyPixels' designs

Display event details

Display MVP data about the event:

  • Title
  • Speaker(s) โ€” name(s), photo(s)
  • Timestamps โ€”ย start, end
  • Room
  • Abstract OR, if not a talk-like event, the corresponding illustration
  • [if user is signed in] Favourite state

Clicking the speakers should bring up the speaker details.

Clicking the favourite button should toggle the favourite state if the user is signed in, otherwise should bring up a sign-in prompt.

๐Ÿ—’ Sharing an event is out of scope for this story

image

Please refer to @ScribblyPixels' design.

โš ๏ธ The design for this screen is not finalised yet

Create settings screen

  • Appbar
    • User avatar and name when signed in
    • "not signed in" when not signed in
  • Settings
    • Sign in CTA when not signed in
    • User email address and sign out CTA when signed in
    • Notifications settings (MVP is master toggle)
    • About
    • Version number

image

Please refer to @ScribblyPixels' designs

โš ๏ธ There is no designs for this screen yet

Create main screen base structure

Structure:

  • Appbar with menu items
    • Settings
    • Search
  • Big empty space in the middle
    Empty states will come later, together with the tabs for the schedule etc
  • Bottom nav bar with three items
    • Schedule
    • Favourites
    • Venue info

main screen

Please refer to @ScribblyPixels' designs.

App doesn't run

Seems the AppBarBottomWidget class no longer exist as trying to run the app throws the following error:

class FlexibleAppBarBottomWidget extends AppBarBottomWidget```
And the [flutter docs](https://docs.flutter.io/flutter/material/AppBarBottomWidget/bottomHeight.html) show a Not found error

Display Tweets list

We should display the tweets that we retrieve as part of #39. UI TBD.

โš ๏ธ There is no designs for this story yet

Create onboarding framework

The app should have a pluggable framework for onboarding, including:

  • Ability to show onboarding on the first startup
  • Never show it again
  • Adding/removing pages easily at compile time
  • Skipping all onboarding pages (via a "skip" button, for example)

The reference is the Android native app's onboarding framework.

Create onboarding sign-in page

The first onboarding page is the sign-in page; it should look something along these lines:

image

Please refer to @ScribblyPixels' designs.

The "no thanks" button brings users to the next page, "yes please" starts the sign-in process. If sign-in succeeds they're immediately brought to the next onboarding page, otherwise they remain on the current page and some error is displayer (design TBD).

โš ๏ธ The design for the error state is TBD and the existing designs are still WIP

Create search results UI

When a user types 2 or more characters in the search field (or inputs using voice), we perform a search across:

  • Events โ€”ย all meaningful fields (title, description, speaker name, track name, etc)
  • Speakers โ€”ย all meaningful fields (name, company, bio)

๐Ÿ—’ The actual search is implemented in another story, #13

We then display, in separate sections (when there are hits):

  • All matching talk-like events (talks, keynotes, workshops, etc)
  • All matching speakers

๐Ÿ—’ Tapping these items should deep-link to the details, but it's out of scope for this issue.

Example (Android):
image

Please refer to @ScribblyPixels' designs.

Fetch tweets from Firestore

Assuming tweets are retrieved by a cloud function and they're stored in Firestore, the app should fetch them.

Details TBD.

Create Wi-Fi setup error page

If in the WiFi setup things don't work we should show some error UI:

image

Please refer to @ScribblyPixels' designs.

The "no thanks" button dismisses the page, "open settings" opens the settings screen where users can manually add the network. The Copy button will copy the password to the clipboard.

โš ๏ธ The existing designs are still WIP

โš ๏ธ Blocked by #48 (implementing the WiFi setup code)

Show favourites for signed in users

When a user is signed in we should show them their favourites, organised by day (TO BE CONFIRMED). Tapping the events brings users to the details for the event.

โš ๏ธ There is no design for this screen yet

Search no results UI

Implement the UI (still TBD) for when the user tries searching for something and nothing matches their query.

This also includes designing and implementing other edge cases, such as:

  • The user clears out the search field: do we show the inactive state again, or do we show an alternative UI like in the native Android app (which is there to simplify the screen logic)

โš ๏ธ There is no design for this story yet

๐Ÿ—’ The rest of the search functionality is implemented in other stories

Set up Firestore in the project

  • Create the iOS App configuration on the Firebase console
  • Create the Android app configuration on the Firebase console
    This shares the same configuration as the native Android app so it's already set up.
  • Configure the Firestore library using FlutterFire's cloud_firestore plugin
  • Confirm data can be accessed from the Flutter app (no UI needed)

Create empty search screen

  • Appbar
    • Back button
    • Text field
    • Voice input button (not functional)
  • Empty state
    • Topics (tracks)
    • Speakers

๐Ÿ—’ The search results is implemented in another story, #12

Example (Android):
image

Please refer to @ScribblyPixels' designs

Perform search

When a user types 2 or more characters in the search field (or inputs using voice), we perform a search across:

  • Events โ€”ย all meaningful fields (title, description, speaker name, track name, etc)
  • Speakers โ€”ย all meaningful fields (name, company, bio)

The results will be presented in separate groups in the UI.

๐Ÿ—’ The UI is implemented in another story: #12

Implement Google Sign-in via Firebase auth

Allow the user to be signed in with Google, to unlock features that require a non-anonymous user, such as favourites.

โš ๏ธ There are no designs for this flow yet

Notify favourite session about to start

The user should get a notification when a session they have favourited is about to start (i.e., starts in 5 minutes).

We should display:

  • Session title
  • Session room
  • Start time

Create Wi-Fi setup onboarding page

The second onboarding page is the WiFi setup page; it should look something along these lines:

image

Please refer to @ScribblyPixels' designs.

The "no thanks" button brings users to the next page, "yes please" starts the automatic setup process. If setup succeeds they're immediately brought to the next onboarding page (or schedule if this is the last one), otherwise they remain on the current page and some error is displayed (out of scope, see #todo).

โš ๏ธ The existing designs are still WIP

โš ๏ธ Blocked by #48 (implementing the WiFi setup code)

๐Ÿ—’ Wi-Fi setup is only available on iOS 11+

๐Ÿ—’ This page can only be shown if the app has the WiFi configuration data, otherwise it must be skipped.

Share event from details screen

Allow users to share links to an event using a web URL, or Firebase dynamic links.

โš ๏ธ There is no design for this screen yet

Create about screen

Please refer to @ScribblyPixels' designs

โš ๏ธ There is no finalised designs for this screen yet!

๐Ÿ—’ The licenses listing screen is part of another story, #34

Create venue information screen

Display the venue information screen:

  • Venue name
  • Venue address
  • Venue map
  • Other data TBD pending screen design

image

Please refer to @ScribblyPixels' design

โš ๏ธ There is no designs yet for this story

Fetch event details from Firestore

Fetch the following info about a session from Firestore:

  • Title
  • Speaker(s) โ€” name(s), photo(s)
  • Timestamps โ€”ย start, end
  • Room
  • Abstract
  • [if user is signed in] Favourite state

๐Ÿ—’ Additional data could be fetched but it out of scope for MVP, see #24

Create empty states for favourites

If a user is signed in we should show them some CTA to add talks to their favourites:

image

If they're not signed in we should show them a CTA to sign in:

[design missing]

Please refer to @ScribblyPixels' designs

โš ๏ธ Designs for this story are still not finalised/missing

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.