Giter VIP home page Giter VIP logo

compulsory1's Introduction

About The Project

Built With (Tech stack)

Front end

Back end

Database

Box Factory

The boomer boss of the box factory wants to modernise by having an inhouse application to keep track of their products (boxes).

He wants employees to be able to add new boxes to their catalogue, edit existing, remove and find particular boxes based on searching and sorting preferences.

You, as the CTO, must decide what properties boxes have in the IT system. (In other words, there's no prebuilt database schema or starter app foundation to rely on)

Strict minimal requirements:

  • The client application must be built using Angular. ✅

  • The backend must be built using a .NET Web API + Relational Database. ✅

  • Communication between client and server should be done using HTTP. ✅

  • There must be data validation on both the client and server side. ✅

  • There must be at least 1 business entity and 1 table in the database. ✅

  • There must be at least the following CRUD operations: ✅

    • Create a new box
    • Delete an existing box
    • Search boxes (Client side)
    • See all details for one given box on it's own page (get by ID)
    • Updating a box
  • Any testing deemed relevant must be conducted in order to assure quality. This can be E2E testing using Playwright (SDK is free of choice, but I recommend .NET Playwright) or integration testing of API's (simply calling the API with an HTTP client in an NUnit test and making assertions). ✅

  • You must have at least one workflow on Github Actions which automates building, running and testing of your application. ✅

DB Creation script

DROP SCHEMA IF EXISTS box_factory CASCADE;
CREATE SCHEMA box_factory;
CREATE EXTENSION IF NOT EXISTS ""uuid-ossp"";

create table box_factory.materials
(
    id            integer generated always as identity
        constraint materials_pk
            primary key,
    material_name varchar(256) not null
);

create table box_factory.box_inventory
(
    guid             uuid                     default uuid_generate_v4() not null
        constraint box_inventory_pk
            primary key,
    width            numeric,
    height           numeric,
    depth            numeric,
    location         varchar(256),
    description      text,
    datetime_created timestamp with time zone default CURRENT_TIMESTAMP,
    title            varchar(256)                                        not null,
    quantity         integer                  default 0                  not null,
    material_id      integer
        constraint box_inventory_materials_id_fk
            references box_factory.materials
);

DB Insert script

-- Materials
INSERT INTO materials (material_name) VALUES ('Cardboard');
INSERT INTO materials (material_name) VALUES ('Kraft Paper');
INSERT INTO materials (material_name) VALUES ('Corrugated Fiberboard');
INSERT INTO materials (material_name) VALUES ('Wood');
INSERT INTO materials (material_name) VALUES ('Plastic');
INSERT INTO materials (material_name) VALUES ('Foam');
INSERT INTO materials (material_name) VALUES ('Metal');
INSERT INTO materials (material_name) VALUES ('Adhesive Tape');
INSERT INTO materials (material_name) VALUES ('Bubble Wrap');
INSERT INTO materials (material_name) VALUES ('Polyethylene');
-- Sample data for the box_inventory  adjust materialIds to match the materials table
INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (10, 5, 3, 'Storage Room A', 'Small box', 'Sample Box 1', 20, 1);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (15, 8, 5, 'Shelf 2', 'Medium box', 'Sample Box 2', 15, 2);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (20, 10, 6, 'Warehouse B', 'Large box', 'Sample Box 3', 10, 3);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (12, 6, 4, 'Storage Room C', 'Small box', 'Sample Box 4', 25, 4);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (18, 9, 7, 'Shelf 3', 'Medium box', 'Sample Box 5', 18, 5);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (24, 12, 8, 'Warehouse A', 'Large box', 'Sample Box 6', 12, 6);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (8, 4, 2, 'Storage Room D', 'Small box', 'Sample Box 7', 30, 7);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (14, 7, 5, 'Shelf 4', 'Medium box', 'Sample Box 8', 20, 8);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (22, 11, 7, 'Warehouse C', 'Large box', 'Sample Box 9', 15, 9);

INSERT INTO box_inventory (width, height, depth, location, description, title, quantity, material_id)
VALUES (10, 5, 3, 'Storage Room E', 'Small box', 'Sample Box 10', 24, 10);

compulsory1's People

Contributors

patrikvalentiny avatar

Watchers

 avatar

Forkers

easv-devops

compulsory1's Issues

Approved✅

Approved ✅

Very nice work! All round good quality and some nice additions like Daisy UI, generator script, etc.

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.