Open source e-commerce analytic dashboard application, written in NextJS 14 and TypeScript. It was designed to be full-stack application that resembles real-world e-commerce platforms
React, NextJS, TypeScript, Tailwind, Zustand, Apollo Client, Iron Session, Jest, Storybook
- 14 data charts (Tremor.so)
- 2 tables with filtering, sorting, searching, pagination and CSV export (Tanstack-ReactTable v8)
- authentication (Firebase, Iron Session, React Hook Forms and Yup)
- internationalization with 2 languages (next-intl)
- calendar page that allows for moving, adding and deleting events (Fullcalendar.io)
- product gallery with Lightbox popup and PDF export (yet-another-react-lightbox, @react-pdf/renderer)
- world map with tooltips (react-simple-maps)
- CI pipeline for testing and linting, working on Github Actions
- 7 color themes (next-themes, tw-colors)
In progress:
- unit and integration tests (currently 30, written with Jest and React Testing Library)
- expanding Storybook
spireflow-preview.mp4
Live (dashboard) https://spireflow.vercel.app/
Live (Storybook) https://spireflow-storybook.vercel.app/
Application is connected to NodeJS backend, which is also open source and available on my Github
https://github.com/matt765/spireflow-backend
├── src
│ ├── app
│ │ └── locale
│ ├── assets
│ │ ├── icons
│ │ └── images
│ ├── components
│ │ ├── auth
│ │ ├── common
│ │ │ └── stories
│ │ ├── forms
│ │ │ └── stories
│ │ └── views
│ │ ├── analytics
│ │ ├── calendar
│ │ ├── customers
│ │ ├── homepage
│ │ ├── orders
│ │ └── products
│ ├── hooks
│ │ └── auth
│ ├── i18n
│ ├── layout
│ │ ├── navbar
│ │ └── sideMenu
│ ├── queries
│ ├── services
│ ├── store
│ ├── styles
│ │ └── themes
│ ├── tests
│ │ └── hooks
│ └── utils
│
└── package.json
All commands are run from the root of the project, from a terminal. Please remember, that application needs working backend to run.
Command | Action |
---|---|
npm install |
Installs dependencies |
npm run dev |
Starts dev server at localhost:3000 |
npm run build |
Builds your production site |
npm start |
Starts server at localhost:3000 |