Giter VIP home page Giter VIP logo

codemash-companion's Introduction

codemash-companion's People

Contributors

jameskbride avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

codemash-companion's Issues

Bookmark a session

The session detail view should have a bookmark FAB to add the session to the user's schedule. If the session has not been added the button should be Codemash green with a bookmark icon and should add the session as a bookmark. If the session has already been added the FAB should be red with a minus icon, and when tapped it should remove the session from the bookmarks.

Implement Schedule View

The third tab of the MainActivity should be a schedule view, which looks and behaves identically to the Sessions tab. The data for this tab is loaded from bookmarked session data.

Delete Old Speakers and Sessions

Currently when data is refreshed there is a possibility that old sessions and speakers are no longer valid (a session is cancelled, a speaker can't make it, etc). This old data is not cleaned up in the database, meaning it will still show up in the the session and speaker listings, which could confuse conference go'ers.

The data in the database that no longer exists in the latest refresh from the API should be deleted, and all associated tables should cascade delete.

Display Session Detail

Tapping a session from the sessions list should take the user to a Session Detail view pager. Swiping left and right should navigate between the sessions. This view should display:

  • The session title
  • The abstract
  • All speakers
  • Start time
  • End time
  • Session type

Handle Error on Loading Conference Data

Conference data is currently loaded when the app is started up while a loading screen is displayed. If an error occurs a dialog should be displayed to the user indicating something went wrong.

The dialog should:

  • Display an OK button, which when tapped navigates the user to the main activity.

Add Espresso Tests

Shamefully, this app was built with zero functional tests. We need to add Espresso tests to cover the expected behavior. These tests should start with MainActivity, rather than Splash. This will allow us to simply insert data into the database instead of making a network call.

Pull to Refresh Conference Data

In order to load updated Conference Data the user should be able to pull to refresh from the main activity. Pulling to refresh to should send out a new RequestConferenceDataEvent. The SpeakersFragmentPresenter should notify the view of updated speakers, as should the SessionsFragmentPresenter with updated sessions.

Do not Reload Conference Data on Splash If It Is Already Present

Currently the conference data is requested every time the app is loaded. This is inefficient because the data will not change often as well as error prone as connectivity at Codemash will not be good. We should check if data already exists in the database, and if so do not request the conference data again.

About Page

The About page should be an option on the menu from the main activity.

The page should contain:

  • Github link
  • Author/Contributor
  • Version (pulled from BuildConfig)

Display the Speaker Detail

Speakers can currently be tapped in the Speakers tab to display the selected speaker in a ViewPager. The Speaker view needs to be laid out, and should include:

  • navigable link and icon to linkedin (if available)
  • navigable link and icon to github (if available)
  • navigable link and icon to blog (if available)
  • navigable link and icon to twitter (if available)
  • speaker biography
  • Speaker name (first and last)
  • Speaker Image from gravatar. Load via Picasso. See the the SpeakersRecyclerViewAdapter for an example of how to do this.

Feature request - collapse by date

It would be nice to have a feature to either open the app with the days collapsed or to be able to collapse days so that during the last 2 days of conferences you don't have to scroll through all the previous courses

Codemash-2020 Data

Hey James, do you have any intention/plan on updating the speaker / session list for Codemash 2020?

List Associated Sessions on Speaker Detail

The sessions a speaker is holding should be listed on their detail page. This will involve mapping the sessions <- -> speaker relationship in the database, configuring the Room entities to hold these relationships, and adding queries to retrieve this data.

Proguarding

The proguard rules need to be implemented to account for Kotlin.

List Sessions in the Sessions Tab

  • Sessions should be listed in the Sessions time ordered by their start time
  • Each session in the list should show their title, start time and their room
  • There should be a chevron pointing to the right to indicate the session is clickable

Make Sessions Linkable from Speaker Detail

Once Issue #9 and Issue #3 have been completed we need to make the sessions linkable on the speaker detail page. Clicking on one of the sessions should take the user to a Session Detail view.

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.