Project goal: The goal is to build a fairly basic game using the Laravel Core setup with the Vue starter pack that is installed here. More details/features are below:
“Tech Stack” – Solo blackjack with tech stacks
Core loop • Goal (per round): beat the AI by getting as close to 21 points as possible without going over. • Deck: programming-package cards, each with a point value and a slot tag (Front-end, Back-end, DB, Dev-ops, Utility). • Turn flow (player then AI): 1. Hit – draw a card, or Stand – end your turn. 2. After both stand (or bust), higher score ≤ 21 wins the round. 3. First loss ends the run; number of rounds you survive = final score.
Special Twists / Mechanics:
Full-Stack Jackpot: If, at any time, your visible hand contains at least one card from each tag (Front-end, Back-end, DB, Dev-ops), you auto-win the round even if you’re below 21. Encourages variety, mirrors real-world stacks.
Laravel Cloud Wild Card: Acts as any tag and instantly sets your hand total to 21 (automatic stand). There is only one in the deck. Fun easter egg for the conference this is for.
Synergy Bonus (+2 pts): Certain pairs add +2 to your visible total without increasing the bust threshold. Example: Vue + Vite, Laravel + MySQL. Small strategic wrinkle, rewards stack knowledge.
Deck size example: 36–40 cards (duplicates of lower-point utilities so hits are common).
Additional mechanic: The user's points should be displayed at the top left of the screen, starting at 0 in the first round they play. Each round won should add the number of points in the user's deck to the total, and then multiply that by 1.5. Losing a round should take the number of points and divide it by 2, without adding the user's points at the end of the round. At the end of each round, the user should have the opportunity to submit their name to the leaderboard along with the total they have after the round is over.
Simple AI logic 1. AI draws until its total ≥ 16. 2. If AI has Full-Stack before busting, it will stand immediately. 3. Use the same bust > 21 rule.
(Tweak the target threshold or add a small random delay to vary difficulty.)
UI/UX: There should be a title screen, probably with the Laravel Core card front and center, and a Play button. Hitting the play button should open up the main game. The Leaderboard button should also be next to the Play button. The game itself should show the user's cards on the bottom of the screen, with the hit and stand buttons down there as well. The opponent AI's cards should be at the top of the screen.
Cards/Points (All images are in images folder): Note: We can also combine the Build/Utility items with the Testing items if you think it's a good idea.
Frontend: Alpine.js - 2 pts (Alpine.jpg) React - 4 pts (react.jpg) Vue.js - 4 pts (vue.jpg)
Build/Utility: Vite - 3 pts (vite.jpg) TailwindCSS - 3 pts (tailwind.jpg)
Backend: Laravel Core - 7 pts (laravelcore.jpg) Laravel Jetstream - 8 pts (laraveljetstream.jpg) Express.js - 4 pts (expressjs.jpg)
Database: Mysql - 4 pts (mysql.jpg) PostgreSQL - 4 pts (postgresql.jpg) Redis - 2 pts (redis.jpg)
DevOps: Docker - 3 pts (docker.jpg) Github Actions - 2 pts (githubactions.jpg)
Testing: PHPUnit - 2 pts (phpunit.jpg) Cypress - 3 pts (cypress.jpg) PEST - 4 pts (pest.jpg)
Wild Card: Laravel Cloud - instant win round (laravelcloud.jpg)