Joke Collection App
A Vue 3 app that lets users fetch, view, and manage their favorite jokes β with category switching, localStorage persistence, star ratings, filtering, sorting, and discreet punchline effects.
Live Demo
π Joke Collection App
Features
- Fetch random or programming jokes via API
- Reveal/hide punchlines
- Add/remove jokes from favorites
- localStorage persistence for favorites
- Star rating system (1β5 β)
- Search through favorites
- Filter favorites by rating
- Sort favorites alphabetically or by rating
- Display statistics (total + average rating)
- Fully responsive UI (TailwindCSS)
- Hover-to-reveal punchlines in favorites
Tech Stack
API
This project uses the Official Joke API by 15Dkatz.
Setup Instructions
- Clone the repo:
git clone https://github.com/Raulanthropos/vue-jokes-app.git
cd vue-jokes-app
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open in browser:
http://localhost:5173
Folder Structure
βββ src/
β βββ components/
β β βββ JokeCard.vue
β β βββ FavoritesList.vue
β βββ composables/
β β βββ useJokes.js
β βββ App.vue
β βββ main.js
βββ tailwind.config.js
βββ index.html
Notes
- All joke data is fetched from Official Joke API.
- This project is built using the Composition API.
- localStorage is used to persist your favorites even after a refresh or revisit.
- Although Iβm familiar with TypeScript, I chose not to use it in this project as I havenβt worked with it recently.