Handcrafted Haven is a web application designed to showcase and promote handcrafted products created by local artisans. The platform allows sellers to create profiles, list their products, and share their stories, while users can browse products and leave reviews. The goal of the project is to support artisans, encourage sustainable consumption, and build a community around handmade goods.
This project is being developed as a group assignment for a web development course, following collaborative software development practices.
- Alexander Nelson
The initial scope of the project focuses on delivering a Minimum Viable Product (MVP) with the following features:
- Seller profiles
- Product listings with images, descriptions, and prices
- Product browsing and filtering
- User reviews and ratings
- Responsive and accessible design
Advanced features such as payment processing or shipping are outside the scope of this phase.
- 🟧 Primary – Orange Clay
#ee5b2b - ⚪ Secondary – Soft White
#f8f6f6 - ⚫ Accent – Deep Brown
#221510
- Headings: Poppins
- Body Text: Inter or Roboto
- Clean and minimal design
- Card-based layout for product listings
- Mobile-first responsive approach
- Consistent spacing and visual hierarchy
Accessibility and readability are prioritized, following WCAG 2.1 AA guidelines.
The following user stories describe the core functionality of the Handcrafted Haven MVP from the perspective of end users and sellers. These stories guide development and are tracked in the GitHub Project Board.
Visitor & User
As a visitor, I want to view a landing page that explains the purpose of the platform, so I can understand how it supports local artisans. As a visitor, I want to browse available handcrafted products, so I can discover items of interest. As a user, I want to create an account and log in, so I can interact with the platform. As a user, I want to leave reviews and ratings on products, so I can share my experience with others.
Seller
As a seller, I want to create a profile with my story and information, so users can learn more about me and my work. As a seller, I want to add products with images, descriptions, and prices, so I can showcase my handcrafted items. As a seller, I want to edit or remove my products, so I can keep my listings up to date.
Product Browsing
As a user, I want to view detailed information about a product, so I can make informed decisions. As a user, I want to filter products by category or price, so I can find items more easily.
Experience & Accessibility
As a user, I want the application to be responsive and accessible, so I can use it on any device. As a user, I want clear feedback and error messages, so I understand what actions are successful or need correction.
-
Set up project repository
- Create a public GitHub repository and configure basic project settings.
-
Configure GitHub Project Board
- Set up a Kanban board to track tasks and progress.
-
Create basic Next.js project structure
- Initialize the Next.js application and configure initial settings.
-
Implement user authentication
- Allow users to register and log in using basic authentication.
-
Create seller profile pages
- Enable sellers to create and display profile information and their story.
-
Build product listing page
- Display all products in a grid or card-based layout.
-
Build product detail page
- Show detailed information about a selected product.
-
Enable product management for sellers
- Allow sellers to add, edit, and delete their products.
-
Implement product filtering
- Filter products by category and price range.
-
Add user reviews and ratings
- Allow users to leave a rating and written review for products.
-
Apply responsive design
- Ensure the application works well on mobile, tablet, and desktop.
-
Ensure accessibility compliance
- Apply accessibility best practices across the application.
- Frontend: HTML, CSS, JavaScript, Next.js
- Backend: Node.js
- Database: To be determined
- Version Control: Git and GitHub
- Deployment: Vercel
- GitHub will be used for version control and collaboration.
- GitHub Projects will be used to manage tasks.
- Team members will work on individual branches and submit pull requests.
