Software Engineer

Another post about a project developed for Urbino University: consider it as didactic purpose only.

Problem specifications

The aim of this project is to realize an e-commerce tool, along with its database, for the final client who wishes to buy some product.

The first need is classifying technology products, such as computers, monitors, accessories and so on. To make products browsing easier, it is advisable to split items into categories, so that customers will be able to find what they’re looking for faster and easier; for each product it is known the id, the name and its description, as far as its price together with its availability.

Whenever a potential customer chooses an item from catalogue, the system should suggest a list of configurations containing the selected product: for example, if a laptop is chosen, the system will propose to buy some kind of mice or PCCARD which belong to the same configuration.

Only registered users are allowed to browse and buy items: for each user, it’s known the id, name and surname, together with his credential to access the system and a shipping address. A user must choose a unique login to be correctly registered.

A discount to total amount of customer order should be considered: total amount of an order could be different from the sum of each item. The system should allow the system administrator to delete an item from the catalogue: this operation must be permitted only under the condition that the selected item is not part of any previous orders, otherwise there must exist another way to hide the product from catalogue browsing and leave old orders consistent.

As the user runs the tool, he can register himself as a new user or log into the system by specifying his own credential. The interface must implement the following operations to read data:

  • Browsing product catalog by category;
  • Viewing details of the chosen product;
  • Browsing all the configurations which include a given item;
  • Browsing user’s profile and all the orders he made;
  • Placing a new order.

The system should let the administrator issue the following operations, which may also alter data:

  • Adding a new category;
  • Adding a new product;
  • Browsing proceeds of sales, grouped by month;
  • Preventing a user from log in (lock);
  • Deleting a product (even if it was already sold).

Download the project, along with the relation, the sources and database schema here.