ShopLizt is a web application that allows users to plan their grocery shopping by creating an items list in advance.
It offers an option to add and share recipe ideas with other users, also get inspired by others recommendations.
The amazing design was provided by BootstrapMade.
Here you can find more about the design: Yummy Design
-
Authentication
-
Login
- log in with existing account
-
Register
- create new account
-
-
Dashboard (Home page)
-
My collection (section)
- view your recipe collection (own recipes and favorite list (saved recipes posted by other users)
- option to open or remove from your Collection
- option to add new recipe
-
My shopping list (section)
- view your prepared item list (added products so far)
- option to go to your Item list page
-
Inspiration (section)
- view some recently added recipes by others and add them to your Collection
-
-
Item list
-
My shopping list
- review your item list
- add new item (from Navigation bar)
- move up/down items so that you can order based on your criterias
- delete item
- edit the item text
- mark (as done) each item when you buy it in the store
-
History of bought products (section)
- when you mark an item as "Bought", it goes to History table, where you can add it to your shopping list again
- Reuse button - return item to your product list for your next shopping by reviewing the last products you have bought (ordered by recent date)
- delete item from your History list
-
-
My Collection
- Users can view their own created recipes and also the receipes they have saved as Favorites
-
Recipes
- Pictures: users can add multiple pictures to their own receipes
- Description: users can add and edit the recipe description
- Ingredients:
- users can list the needed products for the recipe
- other users can add these products to their shopping list, if they decide to cook this recipe
- Filter by Categories - users can filter recipes by Category
- Search Recipe - users can search (input free text) in all existing recipes and find each recipe containing this text in its title or desciption
- Owners of the recipes and Admin-users can delete the recipe
- Pagination - the recipe list is displayed in Pages (12 recipes visible per page)
-
Comments
- users can post comment to each recipe
- Rating - when posting a comment, users should rate the recipe (1-5)
- Last 3 comments are visible below the recipe content
- There is an option to view all comments for the recipe
-
Administration
- Admin user(s) can edit or delete all recipes
- Admin user(s) can review all new added comments and should approve or delete any inappropriate comments
- Admin user(s) receive daily emails if there are new added comments, awaiting approval
- Admin user(s) can access the user list (usernames) and can add an Admin role to more users, if needed.
-
Profile
- users can view their profile (username, registered email, roles)
- users can edit their username, email or change their password
- users can add an image to their profile
-
Language
- there is an option to change the language (English - Bulgarian)
- only the Navigation bar is translated (to be continued)
-
Followers
- follow user
- unfollow user
- block user
- unblock user
-
Design
- Improve the design on all pages
-
Multiple item lists
- add an option to have more shopping lists and order them in categories
-
More options on My Collection page
- add categories and filters that can enable users to order their collections
-
Language
- translate all pages into Bulgarian
-
Server
- config - files used to configure the application
- exceptions - files containing custom exceptions
- model - all database models used in the application
- repository - files directly accessing mySQL database and manipulating data
- service - all business logic used in the application
- validation - files containing customs validation logic
- web - controllers used to handle client requests and make calls to the service layer
- Users receive emails after successful registration in the app:
- Admins receive daily emails if there are new added comments that are still not approved: