Osnova predmetu PV179

Milestone 1

Choose the project theme:

1. MusicoStore:

Create an electronic commerce platform for the company named "MusicoStore" with the purpose of selling music-related products such as microphones, DVDs, and instruments. The website should offer a user-friendly interface, allowing customers to easily navigate through the available products. Furthermore, the products should possess additional filtering capabilities based on categories and manufacturers. It is desired that customers can log in to their accounts to view their order history, while administrators should have the ability to modify various aspects of the products, including their assigned categories and manufacturers.

Moreover, it is requested that the code be made available for retrieval after the completion of the "Milestone 2" phase, enabling deployment on our test server. The code should be obtained exclusively from the master branch, ensuring its reliability and stability. Additionally, we expect the application to be optimized for efficient performance. To achieve this, we require the implementation of a cache mechanism that refreshes every 10 minutes to enhance response times and overall system efficiency.


2. BookHub:

Develop a digital platform for the company called "BookHub", a company that sells books of various genres. The platform should facilitate easy browsing and purchase of books, letting customers sort and filter by authors, publishers, and genres. After customers create accounts, they should be able to review their purchase history, rate books, and make wishlists. Administrators should have privileges to update book details, manage user accounts, and regulate book prices.

Moreover, it is requested that the code be made available for retrieval after the completion of the "Milestone 2" phase, enabling deployment on our test server. The code should be obtained exclusively from the master branch, ensuring its reliability and stability. Additionally, we expect the application to be optimized for efficient performance. To achieve this, we require the implementation of a cache mechanism that refreshes every 10 minutes to enhance response times and overall system efficiency.

3. Custom (ask your tutor)

Milestone 1 Requirements:

  • Make a use-case diagram and data model for the application
  • Create a REST web api that will be able to Fetch the products based on their 'name', 'description', 'price', 'Category' and 'Manufacturer'
  • Setup the database and introduce a DAL (DataAccessLayer) to your project
  • Seed the set up database with some REAL LOOKING DATA, therefore no 'AAAA', 'test' or similar ...
  • Make a gitlab repository and set visibility as Internal (NOT PRIVATE!)
  • Divide the work between Team Lead and Team members
  • Create a readme and write the basic information about how to run the application, what it consists of etc.
  • Create a documentation [Technical Overview] (can be a part of readme) with the diagrams and information about the application
  • Each team member has to contribute as equally as possible. Therefore Each of a team member has to create, seed and make a CRUD operastion on API with atleast 1 entity
  • (new) Each team member in a group must contribute as equally as possible. Therefore, each team member has to create a database entity, seed the created entity, and create CRUD operations (Web API Endpoints) in regards to the created entity.
  • Create an Authetication Middleware (this one can be a simple middleware using only a hard-coded access token)
  • Create a Logging middleware that will log all incomming requests
  • All of the changes should be commited to separate branches and later merged in a merge request (Atleast 1 approve from a team member is REQUIRED. Also, the team member that approves the changes in merge request is now as well responsible for them. (This is a requirement starting the 2nd milestone)
  • All of the Merge Requests for milestone 1 should be merged to a branch called Milestone 1. After you are done with the milestone, make a merge request from Milestone 1 to master (this way, the reviewers will be able to see all the changes in 1 place). The Milestone 1 can be merged ONLY AFTER TEACHER APPROVES IT!
Deadline:

  • Milestone 1 - 25.10.2023  (new) 29.10.2023
  • Milestone 1 Review - 1.11.2023 (new) 5.11.2023