Giter Club home page Giter Club logo

week6-basc's Introduction

Subcomfy

This is an exclusive, members-only subscription service for your homeware dreams: cushions, socks, jams and a goblin. Create an account and start shopping!

A Project by

Acceptance Criteria

  • Server-rendered with Next.js
  • Hosted on Vercel
  • Data stored in ElephantSQL Postgres
  • Homepage with product listings
  • Individual product pages, containing:
    • Quantity/colour/variant pickers

Stretch criteria

  • “Add to basket” button on product pages
  • Basket page showing all saved items
  • Basket contents persisted for future visits
  • Filter products by category
  • [] Sort products by price
  • [] “Featured” products on homepage

Planning

Database

Database Graph

Components

Components Graph

Page Design

Page Graph Basket Page Graph

Instructions

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying pages/index.js. The page auto-updates as you edit the file.

API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.js.

The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

week6-basc's People

Contributors

cemalokten avatar 0bubbles0 avatar aaadriana avatar

Forkers

cerealenjoyer

week6-basc's Issues

Size and Colour options

really good use of inputs here, and i'm curious to see what other options you're planning to put in there. Does everything need to be a choice of pruple / blue / pink? ;)

Can't sign up

It might be a good idea to prioritise either fixing this first, or allowing the basket to be viewed when logged out - just for when it's time to demo :)

Consider use of css variables

There are a few cases in your css files where, for example, the same font size is declared multiple times throughout. CSS variables make it really easy to edit values and make the file more readable :)

AWESOME JOB TEAM 🥇 💯

I'm having to be very picky in all my issues because you've all done an amazing job and I'm super impressed with the end result! I'd say try and get the login functionality fixed as a priority, but either way you all fully deserve to treat yourselves today so go buy a waffle or something <3 Well done :)

Project setup

  • Follow coursebook
  • Next-app
  • Push to GitHub
  • ESLint, Prettier
  • Test set up
  • Local Database
  • Deploy on Vercel

Cannot access the basket (?)

I am signed up, adding an item to the basket, but then cannot access it. I am wondering if there is a different way to access the basket.

Concise use of media queries, Page is neat and responsive :)

If I'm gonna be reeeaaally picky - The smallest screen size in circulation is 320px, the content in your nav bar & promo header starts to wrap at around 358px.
A user-friendly way to accommodate this would be to make title-text and page content a little smaller for phones. This way you can also allow more of your products to fit into a grid for mobile users, rather than one long column :)

Stringify then Parse

I could be completely wrong here because I haven't checked the outputs of each, but if you're stringifying your data when it comes from your database, and then parsing the data you've just stringified inside your component, could you not just skip both steps as they're the inverse of each other?

const productData = JSON.stringify(allProducts);

More descriptive URL slug

At the moment you use the product ID for the url. Consider using (e.g.) the product title instead :)

Co-authoring

Good use of this, and great to get as much practice with Git as possible!

Quantity input

Currently it only allows you to submit numbers, but the user is still able to type in letters. You can make it more user friendly by disallowing non-numeric values to be typed in, have a look at the pattern attribute!

"blabla"

In the bottom left corner of the page - is this a mistake or another easter egg? ;)

Individual product pages

To do:

  • Set up dynamic [id] page
  • Link to [id]-page on Home
  • Get product details from Database
  • Put product details on [id] page

Acceptance Criteria:

  • Quantity
  • Colour
  • Variant?

Closes #13

Filter bar width

Currently your div (first child from main) is taking on the width of it's content, so it jumps when you switch between goblin and other products. Try setting a fixed width on the bar or the parent div (maybe as a % of vw)

Product Idea

  • Type of Products
  • Brand name
  • Content
  • Page flow
  • Design, Layout

products list alignment

Product grid is centred itself but <div>s size are different so it looks like they are not aligned . Would it be better if we can give them fixed width and height? also margin between items?

Login

  • passwords, hashing...
  • cookies, session
  • DB: createUser, getUser
  • page
  • components
  • Bonus: add sth to orders?

Mixed unit measurements in CSS

Try and stick with one measurement type througout. Preferably rem / em, but even px is fine as long as it's consistent :)

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.