Wannabuythis is a web application designed for advanced wishlist management. It enables users to create, manage, and share wishlists with others. Originally developed as a pet project, the application serves as a platform for exploring software architecture and modern web development practices.
- Create, update, and delete wishlists and wishlist items.
- Share wishlists with others.
- Advanced management options, including prioritization and status tracking.
- Frontend: Nuxt.js
- Backend: FastAPI, SQLAlchemy
- Database: PostgreSQL
- Deployment: Docker
Note: This project was developed for educational purposes to practice software design patterns and concepts such as Test-Driven Development (TDD), Domain-Driven Design (DDD), and Event-Driven Architecture (EDA). While it includes practical implementations, the codebase may not fully adhere to industry best practices for these methodologies.
In development mode, the application runs the following services within Docker containers, with the source code linked to the host system for live updates:
- A PostgreSQL database.
- A FastAPI backend application (served via uvicorn --reload).
- A Nuxt 3 frontend application (served via npm run dev).
To start the development environment:
- Clone the repository:
git clone https://github.com/desunovu/wannabuythis.git cd wannabuythis
- Build and launch the containers:
docker compose up -d
- Access the application:
- Frontend: http://localhost:3000
- Backend (FastAPI Swagger UI): http://localhost:8000/docs
This project is released under the AGPL-3.0 license.