Git Product home page Git Product logo

shopping_list's Introduction

Shopping List Project

This project is a simple shopping list web application. It consists of a backend developed in Scala with Play and Slick frameworks, frontend developed in Angular and PostgreSQL database for persistence layer.
It provides basic functionalities to manage a shopping list including adding and removing items as well as choosing the date of purchase.

List of Contents

  1. Setup Instructions
  2. Backend
  3. Frontend
  4. Containers
  5. GUI

Setup Instructions:

  1. Ensure you have Docker and Docker Compose installed on your system.
  2. Clone the repository.
  3. Navigate to the root directory of the project.
  4. Run docker-compose up to start the services.
  5. Application will be available at http://localhost:4200

Backend Scala Play

The backend of the Shopping List project is built using Scala Play which is lightweight and scalable web framework. It provides endpoints to handle user authentication and items management required for an online shopping list system. Scala Slick was used as a data access library for application making it easy to work with relational databases.

Technologies Used:

  • Scala 3.3.1
  • Play Framework
  • Slick
  • PostgreSQL
  • ScalaTest for unit testing

Relational Model:

This relational model represents the structure of tables in a database.

Relational Model

Backend Tests:

Backend was thoroughly unit tested using a behavioral style along with mocking.

Scala Tests

Frontend Angular

The frontend of the Shopping List project is built using Angular framework, providing a modern and responsive user interface for users to use application.

Technologies Used:

  • Angular
  • TypeScript
  • HTML
  • Bootstrap styling
  • Cypress for e2e testing

Frontend Tests:

Frontend was extensively tested using unit, integrated and e2e tests with cypress. Unit tests were written to test individual components such as Angular components or services. Integrated tests were created to validate the interaction between different components. Cypress was used to simulate user interactions across the entire application.

  • Unit and Integration Tests

    karma-tests
  • Tests Coverage

    tests-coverage
  • Cypress Tests

    cypress-tests

Docker Compose Configuration

Docker Compose configuration is provided to easily deploy the Shopping List project along with its dependencies in isolated containers.

Services Included:

  • Backend (Scala Play)
  • Frontend (Angular)
  • PostgreSQL Database

GUI

List of GUI components:

  • Login Form

    Login Form
    • The login form allows user to enter their credentials.
  • Registration Form

    Registration Form
    • The registration form allows new users to create an account.
  • Main Page

    Home Page
    • The home page serves as the main landing page of the application.
  • New Item Form

    Home Page
    • The item creation form allows users to add new items to the list.
  • List View

    Home Page
    • The current list is displayed at main page.
  • Ticking Out Items

    Home Page
    • Items can be marked as purchased.

shopping_list's People

Contributors

nwolniak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.