-
Notifications
You must be signed in to change notification settings - Fork 8
Project 2: E Shop
Trayan Iliev edited this page May 12, 2019
·
22 revisions
The main goal of the project is to implement a web application allowing the users (customers and administrators) to register, and buy from a web-shop different types of goods online, and share their experience about bought Products using Comments.
All Users should have following common attributes:
- id (generated automatically) - long number;
- firstName - string 2 to 15 characters long;
- lastName - string 2 to 15 characters long;
- email - should be valid email address;
- username - string 2 to 15 characters long - word characters only;
- password - string 8 to 15 characters long, at least one digit, one capital letter, and one sign different than letter or digit;
- gender - MALE / FEMALE enumeration;
- role - READER or ADMIN enumeration;
- picture of the user (optional)- valid URL, if missing should ne substituted with an avatar according to the gender;
- metadata (optional) - string up to 512 characters long;
- status - validity status of the user account (ACTIVE, CHANGE_PASSWORD - should change password on login, SUSPENDED, or DEACTIVATED);
- created (generated automatically) - time stamp of the moment the user account was created;
- modified (generated automatically) - time stamp of the moment the user account was last modified;
- publicationsRead - list of all Publications the Reader has already read and/or commented;
- friends - list of all friends (Users), the user wants to share his Comments with;
- publicationsAdded - list of all Publications the administrator has added to the library;
The Administrators should be able to add new Authors and Publications together with their Sections. The Publications have the following structure:
- id (generated automatically) - long number;
- title - string 2 to 120 characters long;
- authors - list of all Authors of the Publication;
- description (optional) - string 20 - 2500 characters long, supporting Markdown syntax;
- tags - string including comma separated tags, allowing to find the Publication by quick search;
- type - enumeration including BOOK, PAPER, and WEB_RESOURCE;
- url (optional) - the url of the publication on WWW, should be a valid URL;
- sections (optional) - the list of Sections of the Publication, described further;
- comments (optional) - the list of Comments about the Publication in general;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- publicationId - the Id of the Publication the Section belongs to;
- title - string 2 to 120 characters long;
- description (optional) - string 20 - 2500 characters long, supporting Markdown syntax;
- tags - string including comma separated tags, allowing to find the entity by quick search;
- type - enumeration including INTRODUCTION, CHAPTER, TOC,INDEX, and SUB_SECTION;
- url (optional) - the URL of the section, could be relative to the Publication URL;
- startPage (optional) - the start page of the section in case of printed resource;
- endPage (optional) - the end page of the section in case of printed resource;
- subSections (optional) - list of Section entities, that are sub-sections of the current Section; !!! ADVANCED: Implement it only if you have enough time
- comments (optional) - the list of Comments about the current Section;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
Each Comment should have the following attributes:
- id (generated automatically) - long number;
- userId - the User ID of the comment's author;
- publicationId - the Id of the Publication the comment is for;
- sectionId - the Id of the Section the comment is for;
- fragment (optional) - the relative #fragment URL inside the Publication/Section;
- page (optional) - the commented page in the Publication/Section in case of printed resource;
- text - string 5 - 1500 characters long, supporting Markdown syntax;
- tags - string including comma separated tags, allowing to find the entity by quick search;
- url (optional) - the URL of a web resource Comment author wants to refer, should be valid URL;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- firstName - string 2 to 15 characters long;
- lastName - string 2 to 15 characters long;
- picture of the author (optional) - valid URL, presented only in Author's view, if missing should be skipped;
- description (optional) - string 5 - 1500 characters long, supporting Markdown syntax;
- publications - list of all Publications of the current Author;
- created (generated automatically) - time stamp of the moment the user account was created;
- modified (generated automatically) - time stamp of the moment the user account was last modified;