Git Product home page Git Product logo

squanchy-flutter's Issues

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

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 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

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

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

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.

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

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.

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.

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 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

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

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 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.

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

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

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

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.

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)

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

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

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

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)

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.