Git Product home page Git Product logo

kim-elijah-sol / realworld-react-fsd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yurisldk/realworld-react-fsd

0.0 0.0 0.0 3.57 MB

A social blogging site powered by React, Zustand, React-Query / Effector on FSD (Feature-Sliced Design) architectural methodology.

Home Page: https://realworld-fsd.netlify.app

License: MIT License

JavaScript 7.40% TypeScript 48.09% CSS 44.36% HTML 0.15%

realworld-react-fsd's Introduction

๐Ÿ™Œ RealWorld example app ๐Ÿฐ Feature-Sliced Design

This codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. Powered by FSD (Feature-Sliced Design) architectural methodology.

Feel free to take a look at Effector version in the effector branch

Realworld example app website

Netlify Status Build workflow Codecov Code style: prettier license

Features

The example application is a social blogging site (i.e. a Medium.com clone) called "Conduit". It uses a custom API for all requests, including authentication.

Dependency Graph

General functionality:

  • Authenticate users via JWT (login/signup pages + logout button on settings page)
  • CRU- users (sign up & settings page - no deleting required)
  • CRUD Articles
  • CR-D Comments on articles (no updating required)
  • GET and display paginated lists of articles
  • Favorite articles
  • Follow other users

The general page breakdown:

  • Home page (URL: / )
    • List of tags
    • List of articles pulled from either Feed, Global, or by Tag
    • Pagination for list of articles
  • Sign in/Sign up pages (URL: /login, /register )
    • Uses JWT (store the token in localStorage)
    • Authentication can be easily switched to session/cookie based
  • Settings page (URL: /settings )
  • Editor page to create/edit articles (URL: /editor, /editor/article-slug-here )
  • Article page (URL: /article/article-slug-here )
    • Delete article button (only shown to article's author)
    • Render markdown from server client side
    • Comments section at bottom of page
    • Delete comment button (only shown to comment's author)
  • Profile page (URL: /profile/:username, /profile/:username/favorites)
    • Show basic user info
    • List of articles populated from author's created articles or author's favorited articles

Getting started

This project was bootstrapped with Create Vite

To get the frontend running locally:

  1. Clone this repo
  2. yarn install to install all the dependencies defined in a package.json file.
  3. yarn dev to start Vite dev server.

Scripts

  • yarn dev - start a development server with hot reload.
  • yarn build - build for production. The generated files will be on the dist folder.
  • yarn preview - locally preview the production build.
  • yarn generate:api - generate api via swagger scheme
  • yarn lint - run ESLint.
  • yarn lint:perf - run ESLint and track the performance of individual rules.
  • yarn prettier - run Prettier on changed files.
  • yarn prettier:all - run Prettier on all files.
  • yarn test:run - run all test suites.
  • yarn test:watch - run all test suites but watch for changes and rerun tests when they change.
  • yarn test:coverage - run all test suites and enable coverage report.
  • coverage:open - open coverage report in browser.
  • yarn test:coverage:open - run all test suites and enable coverage report then open coverage report in browser.
  • yarn dep-cruiser:preview - create a graph of the dependencies1

Feature-Sliced Design Vite React React Router React Query Zustand TypeScript

Footnotes

  1. This assumes the GraphViz dot command is available - on most linux and comparable systems this will be. In case it's not, see GraphViz' download page for instructions on how to get it on your machine. โ†ฉ

realworld-react-fsd's People

Contributors

yurisldk avatar dmgasques avatar yamcodes avatar

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.