Progressive Web App made with Vue.js 3 + TypeScript along with VueUse composables, TailwindCSS + DaisyUI components and Pinia for state management.
- Clone the repository
- Run
npm ci
to install dependencies - Run one of the following commands:
npm run dev
npm run build
npm run preview
Lint with ESLint
npm run lint
Format with Prettier
npm run format
Browser | Version |
---|---|
Google Chrome | 114 |
Mozilla Firefox | 114 |
Safari | 16 |
- Irene for testing the project across numerous devices 🤝
- Danny for inspiration by their repo;
- DarkLite1 for an answer why Object is possibly 'null' in this stackoverflow reply*;
- jcalz for clarifying TS extending interfaces in their post*;
- Mohamed Raza for an elegant way of creating unique IDs in their post*;
- neiya for solving not assignable to parameter of type never error in TypeScript in this post*;
- Chris Coyier for the detailed guide on how to stick footer to the very bottom of the page in this CSS-Tricks article. I abandoned this approach later on, but it serves its purpose well enough on early stages;
- kissu for showing the way to work with dynamic components in Vue 3 Comosition API *. This technique was adopted by me at first, but I switched to the reusable components instead at the end;
- Adri HM for finding solution to their own issue on catching child events from RouterView perspective. Here's the solution*;
- Raf1k for a simple yet great solution on filtering arrays in their stackoverflow post*;
- CodingIntrigue for introducing
findIndex
method to find and update values in an array of objects. Here's their solution*; - Aaron Beall for a hint on a non-null operator in TS taken from this reply*;
- Jasser Mark Arioste for a solution on how to close DaisyUI Dropdown written in great detail in their ReactHustle blog post;
- Brian Bauman for clarifying how the
activeElement
works in their reply*; - Tyler Potts for inspiration in trying out PWA taken from this video;
- Shawn Wildermuth for an example of Vite PWA plugin usage Shawn's YT video;
- storyset for the image I used in this project's social preview.
* - all stackoverflow content is licensed by https://creativecommons.org/licenses/by-sa/4.0/
If you get interested in this project, I'd be glad to see your contributions. Pull requests are welcome!