Skip to content

dexciuq/web-app-project

Repository files navigation

web-app-project

Entity-Relationship diagram (ERD):

NoSQL - Database ER diagram

Collection-Relationship Diagram (CRD):

NoSQL - Collection ER diagram

Workload

Workload: List Queries

  1. Registration – write – The data from the registration form is sent to the server and checked for the correctness of the written data.
  2. Authorization – read – Encrypted data from the server is checked against the user's entered data. If the data is correct, then login to the user's personal account is performed.
  3. Follow – write – The ability to search, and follow users and send data to the database.
  4. View the list of following users – read – The user will receive a list of following users from the database and go to their pages.
  5. Loading the news feed (uploading photos and videos) – read – following users' posts will be visible in the news feed.
  6. Ability to see likes and comments – read – The user will be able to receive information about likes and comments from the database
  7. The ability to add to favorites, comment – write – The ability for the user to like and leave comments.

Workload: quantify/qualify the queries

  1. Registration. Since this is a training project, we do not expect a large influx of users. 20 requests per day will be enough to test the registration. 20 writes/day. Since the request is sent to the database, the operation should not take more than 1 second.
  2. Authorization. The situation with authorization is similar. 20 records per day will be enough for testing. Since a get request is used, the operation should not take longer than 1 second.
  3. Follow. It is expected from 1 to 50 post requests per day. Since this is a post request with a filter, the operation should not take longer than 1 second. Then the following user is sent to the database, which also should not last longer than 1 second.
  4. View the list of following users. No more than 20 requests per day. There is a get requests for all the data, but since we will have no more than a hundred following users, the request and the render should be no more than 3 seconds.
  5. Loading the news feed. No more than 2 requests per day. Since it will be necessary to upload not only text, but also photos, rendering can take up to 3 seconds per post. 6._ Ability to see likes and comments_. Approximately 20 requests per day will be enough for testing. Since this is a get request, the operation should take no longer than 1 second.
  6. The ability to add to favorites, comment. As usual, 20 requests will be enough. Since this is an addition to the database, the operation should take no longer than 1 second.

Relationship models

User model

User {
  _id
  UserRole
  Username
  Email
  PhoneNumber
  Password
  RegistrationDate
  UserProfile (Embedded Document) {
    FirstName
    LastName
    MiddleName (Optional)
    DOB
    Address
    Degree
    AboutMe
    ProfilePictureURL
  }
  Followers (Reference Document) {
    _id (User1)
    _id (User2)
    ...
  }
  Following (Reference Document) {
    _id (User1)
    _id (User2)
    ...
  }
  Posts (Reference Document) {
    _id (Post1)
    _id (Post2)
    ...
  }
}

Post model

Post {
  _id
  Title
  Description
  ImageURL (Optional)
  Comments (Array of Embedded Documents) []
  Tags []
  LikeCount
  CreationDate
}

Comment model

Comment {
  _id
  Comments (Array of Embedded Documents) []
  User_ID (Reference Document)
  Text
  LikeCount
  CreationDate
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •