Skip to content

MartinMenev/ShopLizt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

About this project

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.

Design

The amazing design was provided by BootstrapMade.

Here you can find more about the design: Yummy Design

Features

  • 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)

Future Features

  • 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

Project Structure

  • 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

Emails

  • Users receive emails after successful registration in the app:

Email after Registration

  • Admins receive daily emails if there are new added comments that are still not approved:

Email for Admin approval

Application Pictures

Desktop

Index

iFooter

Login page

Home

Recipes

Not Found message

Error

Product list

Profile

Recipe details

Recipe description

Comments

Register Validations

Login Validation

Mobile

image image

image image

image image