Giter Club home page Giter Club logo

nevskii's Introduction

Nevskii

Deploy STAGING Audit STAGING

Cinema e-commerce platform.

WEB / API

Wireframes

nevskii's People

Contributors

niiccolas avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

nevskii's Issues

User Login

Goal

Add user login / authentication.
Use Next's tailor made: NextAuth https://next-auth.js.org/

Rules

  • implement at least 2 strategies
    • google
    • username/password
  • if possible, implement magic link strategy

[API] /products search endpoint

Goal

Develop an API endpoint that returns a paginated list of database products, with optional search parameters.

Rules

  • deploys endpoint /products
  • Query parameters
    • size - number
    • page - number
    • title - string
      • works with title AND original title
      • is case insensitive
    • orderBy - string (=createdAt, newest first)
      • createdAt
      • price
      • title
      • author
    • order - "asc" | "desc"
    • media - number
    • author - string
      • is case insensitive
    • bestseller - boolean
  • expected return is a JSON object with 4 top level keys, see reference:
    • page - current page
    • itemsPerPage - default size = 10
    • itemsTotal
    • items - Product[]

Reference

{
  "page": 1,
  "itemsPerPage": 10,
  "itemsTotal": 11,
  "items": [
    {
      "idProduct": 180,
      "title": "Le Grand Blond avec une chaussure noire",
      "titleOriginal": "Le Grand Blond avec une chaussure noire",
      "price": "1290",
      "synopsis": "Un violoniste distrait voit sa vie bouleversée par une guerre que se livrent des membres des services secrets français.",
      "productionYear": 1972,
      "createdAt": "2008-03-01T00:00:00.000Z",
      "ean": "3607483156223",
      "imageUrl": "https://images.epagine.fr/223/3607483156223_vid.jpg",
      "authors": {
        "idProductAuthors": 236
      },
      "mediaType": {
        "idMediaType": 0,
        "name": "DVD"
      },
      "availability": {
        "idAvailability": 0,
        "name": "Disponible"
      }
    },
// ...
  ]
}

[API] /products/:id endpoint

Goal

Develop an API endpoint that, given a product ID, returns detailed information for that product.

Rules

  • expected endpoint is: /products/:id

Return value

A single JSON object with the following keys:

{
  "title": "Akira",
  "titleOriginal": "Akira",
  "price": "1990",
  "synopsis": "Neo-Tokyo, an 2019. Détruite trente ans plus tôt par une mystérieuse explosion, la mégalopole japonaise renaît de ses cendres et se prépare à héberger les Jeux Olympiques. Les oubliés de la reconstruction manifestent chaque jour contre le pouvoir en place, tandis que les plus jeunes trouvent refuge dans la drogue et la baston. Parmi eux, Kaneda et Tetsuo, amis d'enfance, et membres d'un gang de jeunes motards. Au coeur des travaux du stade, une section spéciale de l'armée poursuit en grand secret le projet Akira, tandis que les dissidents cherchent à percer le mystère qui se cache derrière ce nom.",
  "productionYear": 1988,
  "createdAt": "2011-06-08T00:00:00.000Z",
  "ean": "5413505306341",
  "imageUrl": "https://images.epagine.fr/341/5413505306341_vid.jpg",
  "availability": "Disponible",
  "stockStatus": "Sur commande",
  "publisher": "Dybex",
  "distributor": "DYBEX - 9EME DIMENSION",
  "ageRating": "Tous publics",
  "mediaType": "DVD",
  "countries": "japon",
  "authors": "Otomo Katsuhiro",
  "bonusContent": "Contient 2 doublages français :\n- le doublage version 1.0 (d'origine), en DD 2.0\n- le doublage version 2.0 (dénuée des erreurs historiques de traduction, et avec l'ensemble des voix françaises originales), en DD 5.1\nMaster d'origine en Haute Définition\n\nTeasers\nBandes-annonces Dybex",
  "minutes": 125,
  "dvdZone": "2",
  "category": "Animation",
  "formatTv": "16/9 Anamorphique",
  "formatFilm": "1.85",
  "actors": "Alexandre Gillet;Barbara Tissier;Gilbert Levy;Mami Koyama;Mathias Kozlowski;Mitsuo Iwata;Nozomu Sasaki;Tessho Genda",
  "audioTracks": "Français DD 2.0;Français DD 5.1;Japonais DD 2.0;Japonais DD 5.1",
  "subcategories": "Manga",
  "genres": "Action / Aventure;Science-Fiction",
  "subtitles": "Français;Néerlandais",
  "collections": null
}

Products Listing

Goal

Develop a component that displays a listing of products called from the API.

Rules

  • Calls api/product/
  • is a Listing component
  • includes a Listing Card component
    • has an "ADD TO CART" call to action
    • points to the relevant Product detail page
    • displays Title, Production year, Price,

Reference

Screenshot 2020-10-20 at 20 14 19

API endpoints

Create and deploy the following endpoints

  • api/product/
  • api/product/:id
  • api/product/:media
  • api/product/bestsellers
  • api/product/category/:cat
  • api/login
  • api/logout
  • api/cart
  • api/profile

Product Details

Goal

Develop a Product component that, given a single product ID, show the product in full details:

  • text
  • image
  • video trailer

Rules

  • is a Product component
  • calls api/product/:id
  • features an ADD TO CART CTA

Reference

Screenshot 2020-10-22 at 10 16 05

[DB] Full Text Search

Goal

Add a product search feature implementing PostgreSQL's Full-Text Search.

Rules

  • is a SearchBar component
  • displays products related to search query
  • gives direct access to found products

Reference

Screenshot 2020-10-22 at 10 44 33

Menu Screen

Goal

Develop a Menu component that enables navigation to site pages

Rules

  • is a Menu component
  • toggable with a hamburger-style button
  • is included in the Navbar component featuring the logos:
    • Site Logo, User profile, Cart, Menu
  • navigates to:
    • DVD, BLU-RAY, BESTSELLERS, CATEGORIES, FAQ, ABOUT PAGE

Reference

Screenshot 2020-10-22 at 10 06 12

Home screen

Goal

Develop the end-user home screen

Rules

  • Request products data from api/product endpoit
  • Display products list as Card components
  • Display a Hero component, hardcoded for now
  • Include SearchBar proof of concept

Reference

Screenshot 2020-10-20 at 15 29 26

Documentation needed

Project's README should feature the following documentation:

  • Business requirements
  • Wireframes
  • Design document
  • Tech stack used

Cart

Goal

Add a persisting Cart feature.

Rules

  • is a Cart component
  • persists products between browser/user sessions using localStorage

Reference

Screenshot 2020-10-22 at 10 57 22

(WIP) [API] bestsellers

Goal

Develop a dedicated API endpoint that returns a list of 100 bestsellers.

Rules

  • deploys endpoint api/product/bestsellers
  • Prisma should reflect the following SQL query:
select p.title, p.id_product, sum(op.quantity) as "sum" from order_products as op
join products as p on p.id_product = op.id_orp_product
group by p.title, p.id_product
order by "sum" desc
limit 100;

[API] enhance /products endpoint

Goal

Enhance /products search API endpoint

Rules

Add the following query parameters:

  • media - number
  • author - string
    • is case insensitive
  • bestseller - boolean

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.