App 4 Social Network - Amir94Mohamed/ConsoleApps GitHub Wiki

App04: Social Network - Inheritance

Description

This application is the first version of a system that will allow users to post messages and photos that other users can view and like. (Any similarities to Facebook is purely coincidental!). This App is based on the BlueJ book chapter 8 in version 5, there is no video of that chapter. In BlueJ version 6 it is discussed in chapters 10 and 11.

There is a video to guide you through the code refactoring.
Please read the BlueJ book for a deeper understanding of the concepts covered.

Web Only Version

If you wish to create a Web version of this app using ASP.NET Core then YOU MUST WATCH
Video: Implement App04 with Inheritance and ASP.NET MVC with EF Core and a second video in Week 8 Pre-Lesson Videos.

You can if you wish create a web only version (NO CONSOLE APP) which would also count as your extension of the requirements worth around 15% of the marks. The Post, PhotoPost and MessagePost classes would form the Model, the Controllers and Views would form the NetworkApp and the NewsPost classes.

You must add any images to an images folder (the hmtl naming convention folder names start with lower case letters) inside of the wwwroot folder. There is no need to add code for users to upload image files. Although that is an extension that would be needed for a full featured application.

Features

The user can:-

  1. Add a message Post to the list of posts.
  2. Add a photo or image Post to the list of posts.
  3. Display all the posts with their comments and likes
  4. Display all the posts for a date/time period (will have to be minutes in the console app)
  5. Display all the posts of a particular author
  6. Remove a particular post.
  7. Add comments to a particular post.
  8. Like and unlike a particular post.

Design

UML: Use Case Diagram (16 marks)

Diagram

UML: Class Diagram (14 marks)

Diagram

Testing (18 marks)

Testing App04

Black Box Testing

NONE

Evaluation (20 Marks)

  1. First improvement, Would have been better if I had completed all the requirements on both, the console and the web version.
  2. It would be better if the app was able to add friends and then use the above mentioned features, and that would at least make the app look realistic.
  3. Another limitation is that because i wasn't able to complete the web version its very complicated to understand the app. i wanted it to make it look much better aesthetic wise.
  4. If i had enough time i wanted to make sure that the app has a very attractive design and have more features in the future.