Skip to content

steamysips/steamy-sips

Repository files navigation

steamy-sips ☕

Run tests Linux Apache MySQL PHP

Overview of client website

A fully-functional coffee shop website, inspired by Starbucks. It was built from scratch without any off-the-shelf PHP framework. A high-level summary of the functionalities includes:

  • User registration and authentication
  • Product browsing and search
  • Product details and reviews
  • Shopping cart management
  • Order history and tracking
  • User account management
  • Administrative functions

For more details, see the software requirements specification.

This repository contains the code for the client website and the API. The code for the admin website is found in a separate repository.

Main features

  • MVC pattern
  • Semantic URL routing
  • Email-based password recovery
  • Email notification on checkout
  • Integration testing with phpUnit
  • Mobile-responsive website
  • Utilizes Webpack for efficient code bundling and compatibility with older browsers.
  • Product review system with nested comments
  • Fuzzy searching on shop page
  • Pagination
  • SEO optimized
  • REST API
  • API testing with Guzzler and phpUnit

Documentation

All documentation (installation instructions, usage guide, ...) is available in the docs folder.

License

The file structure of this project is an adaptation of the php-pds/skeleton filesystem, which is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. Please see the LICENSE file for details on the original license.

Disclaimer

This project was developed as part of an educational assignment and is not production-ready. Please note that the project is currently incomplete, and no further development is planned.

Contributors

References

  1. Product images come from https://www.starbucks.com/.
  2. Icons come from https://tabler.io/icons.
  3. Resources used for MVC pattern:
  4. The filesystem was inspired by https://github.com/php-pds/sklseleton
  5. Additional references are included within the code itself.