Git Product home page Git Product logo

squanchy-firebase's People

Contributors

danybony avatar dependabot[bot] avatar fossabot avatar fourlastor avatar quiro91 avatar rock3r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

squanchy-firebase's Issues

Support new date behavior

The behavior for Date objects stored in Firestore is going to change
AND YOUR APP MAY BREAK.
To hide this warning and ensure your app does not break, you need to add the
following code to your app before calling any other Cloud Firestore methods:

  const firestore = new Firestore();
  const settings = {/* your settings... */ timestampsInSnapshots: true};
  firestore.settings(settings);

With this change, timestamps stored in Cloud Firestore will be read back as
Firebase Timestamp objects instead of as system Date objects. So you will also
need to update code expecting a Date to instead expect a Timestamp. For example:

  // Old:
  const date = snapshot.get('created_at');
  // New:
  const timestamp = snapshot.get('created_at');
  const date = timestamp.toDate();

Please audit all existing usages of Date when you enable the new behavior. In a
future release, the behavior will change to the new behavior, so if you do not
follow these steps, YOUR APP MAY BREAK.

Set up CI

Now that we have some tests (adding more is an ongoing effort) we should have a CI to validate them too. We should be using CircleCI like we do for squanchy-android.

Use TypeScript optional

Right now we're using Optional as our optional type, cause it lets us have a typeguard:

const present<T>(Optional<T> t): t is T

this is great but the best would be able to use typescript optional const present<T>(t?: T), investigate if that's a feasible solution

Use DB triggers to run views

Right now we're using manually triggered functions to convert our data to views, ideally we should have a Cloud Firestore Trigger firing up the function.

Most likely we can go with onWrite and write/delete the record as required.

Create views for all the app screens

We need to create views in Firestore (some through Cloud Functions by reading the raw data coming from the CfP platform into Firestore itself) that normalise data so that it's ready to be digested by the app.

  • Schedule
  • Tweets (social stream, comes from Twitter)
  • Venue info (static data)
  • Favourites (needs a users collection linked to Auth that holds favourite IDs and user profile)
  • Search
  • Event details
  • Speaker details
  • Conference info (static)
  • Tracks

Move Twitter stream to `views`

The tweets feed is in /social_stream/twitter/tweets but should be moved to /views/social_stream/tweets for consistency with the rest of the views

Cherry pick from PR

#62 introduced some great ideas (the enum, some other things) which we want to keep in master, cherry pick these

Algolia should match speaker name in events too

Currently the event index in Algolia matches the query with the name of the event and its description. It should, if present, match it with the speaker name too.

Real life use case: I'm searching for a speaker, not because I'm interested in his bio, but because I'd to see what talk he will perform

Keep events' speakers order

Currently the speakers order for events is lost when creating the schedule (and possibly the event details too)

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.