17 Comments
Jul 11Liked by Ashish Pratap Singh

Thanks for sharing the valuable content bro 🙌🏻🙌🏻

Expand full comment
author

you are welcome!

Expand full comment
Jul 11·edited Jul 11

I have gone through Code of StackOverFlow. I just wanted to add a suggestion for your StackOverflow class.

Instead of writing all methods below inside StackOverflow class, Create a Multiple Class such as UserService, QuestionService, VotingService , etc.

By moving these methods to respective class , it will be more modular, extensible.

UserService

createUser(username, email): Creates and registers a new user in the system.

getQuestionsByUser(user): Searches questions added by a user.

QuestionService

askQuestion(user, title, content, tags): Allows a user to ask a new question.

answerQuestion(user, question, content): Allows a user to answer an existing question.

addComment(user, commentable, content): Allows a user to add a comment on an existing question/answer.

acceptAnswer(answer): Mark an answer as accepted

Voting Service

voteQuestion(user, question, value): Registers a vote on a question.

voteAnswer(user, answer, value): Registers a vote on an answer.

SearchService

searchQuestions(query): Searches for questions based on a query string.

@Ashish , Let me know if i am thinking in right directions ??

Expand full comment
author

Makes a lot of sense. Thanks for sharing your insights.

Expand full comment
Jul 11Liked by Ashish Pratap Singh

It was really awesome to go through.

Expand full comment
author

Glad to hear this, thank you!

Expand full comment
Jul 24Liked by Ashish Pratap Singh

Thanks for explaining in a detailed way.

It's very easy to understand.

Expand full comment
author

Great to hear this, thank you!

Expand full comment
Jul 18Liked by Ashish Pratap Singh

A good object-oriented design exercise can tell a lot about candidates.

This is a great example, Ashish!

Expand full comment
Jul 12Liked by Ashish Pratap Singh

Really Great👍

Expand full comment
author

thank you!

Expand full comment
Jul 12Liked by Ashish Pratap Singh

Way of explanation is awesome. Keep continue👍

Expand full comment
author

thank you so much!

Expand full comment
Jul 11Liked by Ashish Pratap Singh

Excellent share...

Expand full comment
author

thank you!

Expand full comment

for now in above code we are not using Votable interface, so instead of writing voteQuestion and voteAnswer method we can use single method- addVote(user, Votable, value).

Expand full comment
author

agree.. we can utilize the Votable interface here

Expand full comment