Skip to content

submission commit#99

Open
0lcm wants to merge 4 commits into
the-csharp-academy:mainfrom
0lcm:main
Open

submission commit#99
0lcm wants to merge 4 commits into
the-csharp-academy:mainfrom
0lcm:main

Conversation

@0lcm
Copy link
Copy Markdown

@0lcm 0lcm commented Apr 23, 2026

No description provided.

@hasona23
Copy link
Copy Markdown
Contributor

hasona23 commented May 1, 2026

Hi @0lcm
Hope you are doing fine. I'll start reviewing your e-commerce API app. hope you learned a lot from it.
Will post review soon. 😄

bye 👋

@hasona23 hasona23 self-assigned this May 2, 2026
local migrations that we're accidentally not committed during development
@0lcm
Copy link
Copy Markdown
Author

0lcm commented May 3, 2026

Hi @hasona23, I noticed that I had accidentally forgotten to commit a couple migrations during development, so I pushed them just now. Thank you taking the time to review my project!

Copy link
Copy Markdown
Contributor

@hasona23 hasona23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @0lcm

Review point:
1- Critical 🔴 :

1- Price Validation:

Image Image

2- Check for duplicate project tags

Image

3- I don't understand why are tags stored if i cant display them as list and search by tag nor add 1 to product without typing name manually

4- Sales Reivew produces this error

Image 5- Same error happened with adding sale Image

6- Same error happens with also deleting Sales

Image

7- There is an error without pagination/get items logic which doesn't happen in the Tag system. the error is duplicate data i thought it was database but the data in api.db is fine and not duplicated (and ofcourse sqlite wont duplicate id)

Image

2- Warning 🟡:
1- Solution/Repository naming: it is advised to name as [project name].[GitHub name]
2- Pages system doesn't handle the edge case of an empty page in 2 ways:
- Not removing Next page button
- Allowing to go to empty page

Image

3- Don't make user have to memorize id of products to delete as this will get even more complex when it is not incrementing integer ID (1,2,3,4) but hash id (5f4dcc3b5aa765d61d8327deb882cf99).
instead you could either
- Display them all like in list or with more brief information and then prompt for id
- Use a selection prompt (single or multi up to you)

Image

4- Back option in delete product doesn't work the "null argument" text shouldn't be displayed

5-
Image
you need to make it case-in-sensitive and make sure

6- It is better to not clear any of the input data until all is entered dont clear after each input paramter so i could keep track of what i enterd up till now

6,7- Also for search to leave it even with displaying data so that i could know what is the search for or just type what i set for the search paramters

6,8- For add could allow me

9- It is better and mostly common way to put it in the appsettings.json file any config paramters should go there you could even see it in the academy repositoy although it is not sent through github but reading the README implies the use of it

Image

3- Suggestion 🔵 :
1- Don't clear screen in searching products section till i enter my search paramters
Image

2- Dont delete screen until I finished adding all Create product parameters
Image
3- Display Products as a table instead of list it will cover less vertical space
Image

4- It is better to make the enum displayed as a selection prompt instead of text prompt. it is easier for both you and the as user doesnt have to take care of spelling errors or hidden characters and you will have less headache validating what he wrote

Image Image

4- Awesome 🟢
1- Pagination
2- Storing constant reused and some config data as constants and static such as Utils.cs and UiHelper.cs
3- The amazing use of Spectre.Console functions which most people ignore. although will benefit from adding slightly more colors and reduce/moderate the use of clear console

I Still didnt finish reading the whole code but the Critical 🔴 must be done as the project wont be accepted till then.
I must say it is amazing all the stuff you did including pagination and your first semi-working API with ui Using Spectre console

I know this may seem daunting at first but it is your first time so this actually quite normal😄

looking forward to seeing your adjustments 😄
Good luck!

fixed requested changes
@hasona23
Copy link
Copy Markdown
Contributor

Critical 🔴 :

  1. Price can be set to zero. it must be non-negative nor zero
image 2) Something wrong with title header display image 3) Cant find the products i made to delete. perhaps there is missing pagination or something image 4) Empty page in tag listing image 5) Empty infinite pages number in sales image Moderate 🟡 : 6) Just prompting for ID in delete sales and tags would be better to do like in products. You should think about how user feels when using the app is it good for him to keep searching for products and find and memorize their id

You are so close to making it
Keep up the good work 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants