Giter Club home page Giter Club logo

foambook's Introduction

This repo cannot be run by itself - the server code it depends on lives in another repo which is private.

foambook's People

Contributors

dependabot[bot] avatar qualitymanifest avatar

Watchers

 avatar  avatar

foambook's Issues

Users should be able to change username

Currently usernames are taken from their google profile and are not user modifiable.

One complication here is going to be the dealing with current data model for comments. In an effort to avoid expensive joins (because mongoDB), usernames are denormalized and are saved into comment documents.

Also must ensure that usernames are unique.

Move components out of queryFunctions

There are several components inside queryFunctions.jsx. These should be moved into their own files inside the components directory. After this is done, queryFunctions.js and validation.js should be moved to a util directory.

  • FootNote
  • ListLocations
  • BreadcrumbBuilder

Improve breadcrumb navigation to be more specific

Currently city and state are a combined link, as are railroad and symbol.

Users should be able to navigate back to state, in which case they will see the list of states but with that state's panel open. Same thing with railroads: When navigating back to a railroad, show the list of railroads for that location, but with that railroad's panel open.

Upgrade informed or migrate back to react-form

Informed v2 is now out. When trying to upgrade, submissions fail silently, and I get an error regarding keepState when I try to navigate away from components with forms.

Since react-form (which informed is based off of) is now maintained again, might make more sense to migrate back.

Clicking on city links is broken in iOS Firefox

While attempting to navigate the query menu, clicking on a panel will expand the panel but clicking on an item in the panel does not navigate to that link. This only happens on iOS Firefox.

Rewrite README page

The readme is pretty verbose, and on mobile it's just a massive wall of text. Potential improvements:

  • Move advice about how to submit notes directly to the note form, in the form of tooltips that can be viewed by clicking question mark icons.
  • Use expandable panels
  • Generally rewrite in a more succinct manner

Convert some pub/sub to methods

There are some places where data loading via methods might be preferable to pub/sub

Keep pub/sub:

  • Main menu & sub-menus (should be kept in cache)
  • Everything on submit and profile pages
  • Comments section

Consider replacing pub/sub:

  • Railroadfan info (Keep in mind the possibility of comments, which live below railroadfan info, loading before railroadfan info)
  • Chart

Error after logout

After logging out the screen goes white and there is an error in the console: TypeError: Cannot read property 'name' of undefined

This only appears to happen in the /add_note route

Investigate other deployment options

Zeit Now v1 isn't going to be around much longer and Meteor is incompatible with Now v2. It's going to be difficult finding a low/no cost replacement that also gives you a custom URL.

Array.from and spread w/ URLSearchParams is broken in ios firefox, chrome devtools mobile view

Caused #18

While that issue is solved, this could end up causing problems elsewhere.

To duplicate:

  1. Go to app in chromium
  2. Toggle devtools mobile browser view
  3. Refresh the page (has to be in mobile view when page loads)
  4. Run the following in the console:
const params = new URLSearchParams("?city=PITTSBURGH&state=PA");
Array.from(params) // Why is this empty??

Best guess is there is a different build being sent when a mobile browser is detected. Suspect something going on with @babel/runtime and the way Meteor uses it.

Use a different date library

Moment is both large and slow. Contenders:

  • luxon
    • Pros: Small, great timezone support, faster than date-fns with isBefore (and presumably isAfter) which would be important for double-slider date filtering idea
    • Cons: Slow in some aspects, no tree shaking, less widely used
  • date-fns:
    • Pros: Small, fast, popular
    • Cons: Poor timezone support

Excessive checking and waiting before rendering chart

Currently, when a user navigates to a full state/city/railroad/symbol, we check if the location exists which requires looking at aggregateLocations, and then before rendering the chart we wait for comments and other aggregate info.

The location check is mostly pointless. It provides a slightly more useful error message, but there are very few situations in which it has any use, and it runs every time a user navigates to a location. It would be better to get rid of this.

Comments and aggregate info are barely above the fold if at all, it would be faster to just fade them in if/when they arrive so we don't have to wait for all three collections before rendering the chart.

Create constants file

There are a lot of repeated values strewn around, it would be good to organize these. In particular look at:

  • collections/notes
  • collections/comments
  • utils/validation
  • server/main

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.