Required theory
- What are (Rest) APIs and how are they used
- What is htmx and how do I adapt my API for it
- How do you use gradle
Your stack:
- javalin
- vuejs for frontend (not normal vue, see the integration above)
- htmx to reduce the frontend work as much as possible (optional, but recommended)
- jetbrains xodus as the database
- styling of your choice (e.g. vanilla css, bootstrap, scss, tailwind), but styling is not a priority at all for now
- jdk 17 + gradle
- IntelliJ, else you’re gonna have a bad time
Project requirements
- Products from the database are displayed on the website, organized and sortable by categories
- important fields: image, description, price, stock
- they can have dynamic attributes like color and size (always a selection)
- once a product is bought, the stock decreases
- Users need to register with email and password (you don’t have to send an actual email) to complete their checkout
- they can log in any time to see their past orders
- Some users are admins, meaning they can
- see all users and their order history
- create, edit and delete products and their attributes
- manage stock