This is a solution to the Invoice app challenge on Frontend Mentor. Frontend Mentor challenges help you improve your coding skills by building realistic projects.
The challenge is to build out this multi-page website and get it looking as close to the design as possible.
Users should be able to:
- View the optimal layout for the app depending on their device's screen size
- See hover states for all interactive elements on the page
- Create, read, update, and delete invoices
- Receive form validations when trying to create/edit an invoice
- Save draft invoices, and mark pending invoices as paid
- Filter invoices by status (draft/pending/paid)
- Toggle light and dark mode
- Bonus: Keep track of any changes, even after refreshing the browser (
localStorage
could be used for this if you're not building out a full-stack app)
- Semantic HTML5 markup
- CSS custom properties
- Flexbox
- CSS Grid
- Mobile-first workflow
- Accessibility in mind
- Next.js 14 – Full-Stack Web Framework
- React – JS library
- Clerk – Authentication and User Management
- Prisma – Node.js and TypesScript ORM
- TypeScript
- Vitest – Next Generation Testing Framework
- Storybook – Frontend workshop for UI
- Tailwind CSS – CSS Framework
- Vercel – Frontend Cloud
-
Next.js 14:
- TODO
-
Clerk:
- TODO
-
Prisma:
- TODO
-
Vercel Postgres:
- TODO
-
Storybook:
- TODO
- Next.js Documentation
- Clerk Documentation
- Prisma Documentation
- React Documentation
- Vitest Documentation
- Tailwind CSS Documentation
- Vercel Documentation
- Website – www.jakubjirous.dev
- Frontend Mentor – @jakubjirous
- LinkedIn – jakubjirous
- Twitter/X – jakubjirous_dev