Giter Club home page Giter Club logo

brixtonlocal's People

Contributors

jamiecoe avatar johanna-hub avatar macintoshhelper avatar rb50 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

brixtonlocal's Issues

Categories

This page needs a restyle in line with the tags page - they look completely different now!

Netlify vs Heroku

We will initially use Heroku to deploy the application.
If the application becomes slow, we may need to look into moving to another platform, options include:

  • Surge
  • Netlify
  • Heroku

Newsletter sign-up

Am looking into putting a newsletter sign-up so that we can do a weekly round-up of news and updates to the site. Seems to be some sort of Gatsby/Mail chimp plugin that can be used

Alphabetical order of entries

Currently listings are showing up alphabetically because I am sorting the Google Sheet alphabetically - would be better to sort them in the code, so that the Google Sheet can be kept in chronological order of addition so contributors can see latest entries etc.

Footer

We could basically close loads of front-end component issues if we did the footer 🀣

Front End Components - menu page

Create react components for the menu (mobile view):

  • Nav bar
  • All Listing link
  • Categories link
  • Tags section
  • About link
  • Contact link
  • Footer

Front End Components - all listings page

React components for the all listings page in Figma as <Page.List>:

  • nav bar
  • List container including:
    • Individual category container including:
      • Category title
      • Each entry of that category with link to page
  • Footer

Error handling

  • Google Sheets API error handling
  • General server error handling (useful error messages)

Default photo

At the moment if there is no photo, I am putting the url to the lovelocal.life illustration in the spreadsheet. Would be good to have this as a static image file, and if there is no photo url the illustration gets used automatically

Documentation

  • On-boarding new businesses (How to use google sheets)
  • General documentation (How to run the project, how to get involved etc)

Category Header photos

The category header just takes the first photo from each category and this can be quite random - the photo can have a lot of white in it, which doesn't really work or it's not a very representative photo. See https://www.winchmorehilllocal.life/ as an example of bad photos!

I had a friend do an amazing illustration for lovelocal.life - I am using it as a placeholder when people don't upload a photo and also want it on the About page for each site. Am thinking it would work well for the categories header - we could take different parts of the illustration and use that for each photo. That way it is consistent and we know what it looks it! We can even make a gap for the number to go in, or make any necessary adjustments.
Check the illustration out here:
https://www.lovelocal.life/

API endpoints

Agree on appropriate endpoints for:

  • Each business page /posts/businessname
  • Tags eg: /tags/bread
  • Pages (this will be irrelevant if we implement an infinite scroll) /page/1
  • About /about

These will be via a GET request.

Path/routing logic

Proposal for path/routing logic:

Pseudo-code:

const routes = [{
  path: '/',
  component: 'pages/index',
}, {
  path: '/about',
  component: 'pages/index',
}, {
  path: '/terms',
  component: 'pages/terms',
}, {
  path: '/business/:id',
  component: 'templates/BusinessPage'
}, {
  path: '/category/:id',
  component: 'templates/CategoryPage'
}, {
  path: '/tag/:id',
  component: 'templates/TagPage'
}, {
  path: '/discover',
  component: 'templates/DiscoverPage'
}]

This is handled in the gatsby-node.js file: exports.createPages = function..., where the pages can be generated from API data, JSON file, files (e.g. docs/about.md), etc

Sort by filter

If we have a sort by filter, we can then have random order of entries on main page - I am annoyed by seeing the amount of clicks the first few businesses get in google analytics - feel sorry for the others!

Front End Components - categories menu page

React components for the categories menu page in Figma as <Page.AllCategories>:

  • Nav bar
  • Categories container including:
    • Title
    • Category title with number of entries
  • Footer

Tags issues

Now that there are spreadsheets run by different people, some issues arising with tags:

  • Tag text needs to be capitalised - looks messy when it is taken from spreadsheet and is a mixture of cases
  • Trim if there is a comma at the end of tag list (this causes an empty tag to display)
  • On the all tags page - they are all lower-case, need to be capitalised
  • Look into why there is an empty tag on the tags page in Wokingham and Winchmore Hill
    https://www.wokinghamlocal.life/tags
    https://www.winchmorehilllocal.life/tags

Front End Components - about page

Create React Components for the following for the About page in Figma as <Page.About>:

  • Nav bar
  • Main Content Container to include:
    • Text
  • Footer

Front End Components - results page for tag list

React components for tag results list in Figma as <Page.Tag>:

  • Navbar
  • Main Content Container to include:
    • Tag as Title
    • Tag Container to include:
      • Tags to filter further
    • Business Listing Container to include:
      • Individual business listings to include:
        • Photo (if provided) or standard illustration (if no photo)
        • Category
        • Delivery or Collection or both
        • Listing Name
        • Tags
    • Related Tags container to include:
      • Related tags
    • All tags container to include:
      • All tags
  • Footer

Front End Components - single entry page

Create front end React Components for the Single Entry page in Figma as <Page.Business="/:id>:

  • Navbar
  • Detailed Business Listing Container to include:
    • Category
    • Title
    • Short description
    • Lockdown services
    • How to order
    • Address
    • Website
    • Social media links
    • Tags
    • Photo or standard illustration
  • Footer

Code style – ESLint/Prettier/editorconfig

I think it may be worth deciding on an ESLint setup and using .editorconfig. Prettier seems to be bundled in with Gatsby, but I'm not a big fan of it personally, especially if it's not running in a pre-commit or in CI. But might be simplest just to agree on a prettierrc config, run it once throughout all the code, and enforce it in PRs.

Gatsby's prettierrc doesn't allow semicolons, which I'd suggest changing.

AWS DynamoDB Database

  • use the AWS DynamoDB database servicehttps://aws.amazon.com/dynamodb/?did=ft_card&trk=ft_card
  • use AWS Lambdas on a cron job to update the database; this can be run every hour

We are doing this because we have a limit of the number for requests that can go to GoogleSheets API. To prevent the app from sending a request with every user, the request will fetch the data from the database rather than directly from the GoogleSheets API.

Note: We have a maximum of 25GB storage on the AWS free tier

Front End Components - home page

Create Front End React components for the landing page (please see the figma design):

  • Navbar
  • Main Content container to include:
    • Landing page to include:
      • Brixton local.life header
      • Horizontal scroll categories
    • Top 5-10 tags
    • Card listing to include:
      • Photo (if provided) or standard illustration (if no photo)
      • Category
      • Whether delivering or collecting
      • Entry name
      • Entry tags
    • All tags
    • Footer

Front End Components - results page for category list

React components for the category results page in Figma as <Page.Category>:

  • Navbar
  • Main Content Container to include:
    • Title
    • Tag Container to include:
      • Relevant tags for that category (if there is a sub-category show as a tag)
    • Business Listings Container to include:
      • Individual listing container to include:
        • Photo (if provided) or standard illustration (if no photo)
        • Category
        • Business name
        • Tags
    • Category horizontal scroll container to include:
      • All other categories
  • Footer

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.