Made with HTML
, CSS
, TypeScript
, ReactJS
, styled-components
, react-router
, redux-toolkit
Bootstrapped with Create React App
πΌ Screenshots β’ βΉοΈ About β’ βοΈ Tools β’ π¨ How to Build Project β’ π File Structure
π¦ NPM Packages worth mentioning β’ π‘ Details β’ π Useful resources β’ π€ Author
This is a solo challenge "Quizzical" from Scrimba React Course (link).
The challenge is to create from scratch a Quizzical application.
API: https://opentdb.com/api_config.php
I made my own Figma prototype and redesigned the whole application.
Figma prototype: https://www.figma.com/file/0SIScG6N67cgfIvsY5cQng/Quizzical-App
- HTML5
- ReactJS
- CSS
- styled-components
- TypeScript
- ReactJS
- Redux
- Redux Toolkit
- NodeJS
- Create React App
- Github Pages
Command | Description |
---|---|
npm install |
Installs required npm packages. Run it before building the project |
npm start |
Starts a local web server with HMR (Hot Module Replacement) for development |
npm run predeploy |
Builds the project, and outputs to the folder ./build |
βββ π docs Additional information, documentation
β βββ π results Screenshots of how the application works after being fully developed
|
βββ π public Static assets: images, icons, favicons, index.html
|
βββ π src Source files needed for application development
β βββ π app Hooks for work with Redux store (Redux toolkit)
β βββ π assets Static assets, referred to in src
β βββ π components React components
| | βββ π Component Name
| | βββ π index.tsx Component logic
| | βββ π index.styled.tsx Component styles
| | βββ π index.types.tsx Component types (optional)
β βββ π features Redux slices (Redux toolkit)
β βββ π pages React page components
| | βββ π Page Name
| | βββ π index.tsx Page logic
| | βββ π index.styled.tsx Page styles
| | βββ π index.types.tsx Page types (optional)
β βββ π styles Global styles
β βββ π App.tsx App React component
β βββ π index.tsx Entry point for the module bundler
β βββ π react-app-env.d.ts Some Typescript stuff for Create React App
|
βββ π .gitignore Instructions for Git about what files to ignore
βββ π LICENSE MIT License. Basically you can do whatever you want with the code
βββ π README.md Project description
βββ π package-lock.json Keeps track of the exact version of every package that is installed
βββ π package.json Various metadata relevant to the project, scripts, dependencies
βββ π tsconfig.json TypeScript configuration file
react-detect-offline |
Used it to display a component that is shown only when the user is offline |
react-loading-skeleton |
Used it to show skeletons while fetching new data |
react-toastify |
Used it to display notifications that disappear over time |
react-outside-click-handler |
Used it to close options list in select component when clicking outside |
@reduxjs/toolkit , react-redux |
Used them to store state in one place |
react-router-dom |
Used it to route user between pages |
My first ReactJS project with Create React App.
- First time using Redux, Redux toolkit
- Made custom select components
- Made a custom modal window (React Portal). Changing settings will change query params for API
- Made API requests using RTK Query
- Custom skeleton components. They rely on a
react-loading-skeleton
library - Made routing with React Router
This was quite a big project. The description is quite short, but well... I spent about 2 weeks on this project, and it wasn't easy at all.
- Redux Toolkit Introduction + Github repository with code - Helped to understand how to work with Redux Toolkit
- How to deploy a react app on GH Pages - to put shortly, just use HashRouter in the application
- How to Make a Custom Scrollbar
- How to Make a Custom Select Component
- How to Make a Custom Spinner
- How to Decode HTML Entities
- Frontend Mentor - @GrbnvAlex
- Telegram - @Arlagonix
- Github - @arlagonix