Skip to content

Releases: bounswe/bounswe2023group8

0.9.0

26 Dec 02:20
789d5e0
Compare
Choose a tag to compare

Group 8 Cmpe451 2023 Fall Final

Build and Deployment Instructions

Pre-requisites

  • Docker
  • Docker-Compose
  • Git

Pre-build

  1. Clone the Repository

    git clone https://github.com/bounswe/bounswe2023group8.git
    
  2. Database Environment Configuration (Required)
    Navigate to the root directory:

    cd bounswe2023group8/app
    

    Create a .env.annotation-db file and populate it with the values provided in the annotation-db file, which is located in the 'secrets' folder of the deliverables uploaded to Moodle.

  3. Database Environment Configuration (Required)
    Navigate to the root directory:

    cd bounswe2023group8/app
    

    Create a .env.enigma-db file and populate it with the values provided in the enigma-db file, which is located in the 'secrets' folder of the deliverables uploaded to Moodle.

  4. Backend Environment Configuration (Required)
    Navigate to enigma directory:

    cd bounswe2023group8/app/backend/enigma
    

    Create a .env file and populate it with the values provided in the enigma-server file, which is located in the 'secrets' folder of the deliverables uploaded to Moodle.

  5. Backend Environment Configuration (Required)
    Navigate to the annotation directory:

    cd bounswe2023group8/app/backend/annotation
    

    Create a .env file and populate it with the values provided in the annotation-server file, which is located in the 'secrets' folder of the deliverables uploaded to Moodle.

  6. Frontend Environment Configuration (Required)
    Navigate to the web directory and modify the .env.development file:

    cd bounswe2023group8/app/web
    

    Replace IP of the REACT_APP_BACKEND_API_URLwith the IP of the host machine. (localhost if in local environment)

Build steps

  1. Navigate to App Directory

    cd bounswe2023group8/app
    
  2. Start Services with Docker-Compose

    docker-compose up
    

If you encounter any issues in determining the correct values, please contact @bakikucukcakiroglu to obtain a valid .env file.

After running the above steps, your application should be up and running. You can send requests to 80 port of the host machine. Make sure to check any logs for potential issues during startup.

Please refer to Final Project Report for Changelog.

0.2.0-alpha

28 Nov 02:55
b58c60d
Compare
Choose a tag to compare

Build and Deployment Instructions

Pre-requisites

  • Docker
  • Docker-Compose
  • Git

Pre-build

  1. Clone the Repository

    git clone https://github.com/bounswe/bounswe2023group8.git
    
  2. Backend Environment Configuration (Required)
    Navigate to the backend directory:

    cd bounswe2023group8/app/backend/enigma
    

    Create a .env file and populate it with values based on the .env.example file present in the same directory. If you have any problem determining the values, contact @bakikucukcakiroglu to get a valid .env file.

  3. Frontend Environment Configuration (Required)
    Navigate to the web directory and modify the .env.development file:

    cd bounswe2023group8/app/web
    

    Replace IP of the REACT_APP_BACKEND_API_URLwith the IP of the host machine.

Build steps

  1. Navigate to App Directory

    cd bounswe2023group8/app
    
  2. Start Services with Docker-Compose

    docker-compose up
    

After running the above steps, your application should be up and running. You can send requests to 80 port of the host machine. Make sure to check any logs for potential issues during startup.

Requirements

User Requirements

1.1.1 Registration and Login

  • 1.1.1.1 Guests shall be able to:
    • 1.1.1.1.1 Register giving the following information; email, password, username, birthday.
  • 1.1.1.2 Users shall be able to:
    • 1.1.1.2.1 Login by giving the following information: email and password or username and password.
    • 1.1.1.2.2 Logout.
    • 1.1.1.2.3 Update their passwords.
    • 1.1.1.2.4 Reset their passwords using 'Forgot Password?' option.

1.1.2 Account

  • 1.1.2.1 Guests shall verify their account via email before they can be considered as users.
  • 1.1.2.3 Users shall be able to update some of the account information.
    • 1.1.2.3.1 Users shall be able to change passwords and other account related settings.
    • 1.1.2.3.2 Users shall not be able to change their username, email address, and birthday.

1.1.3 User-to-User Interactions

  • Users shall be able to:
    • 1.1.3.1 View other users profiles' and see their publicly viewable data such as their public posts (posts they created in public IAs), names of their public and private IAs, followers, followings, and tags that they are interested in.
    • 1.1.3.2 Follow other users on the platform.

1.1.4 User-to-Platform Interactions

  • Users shall be able to interact with the platform via:
    • 1.1.4.1 Posts: (See "1.2.1.1 Posts")
      • 1.1.4.1.1 Creating a post in an IA by providing a title, a main link that this post refers to, a description, tags that the post relates to defined by Wikidata, original source of the provided link, and optionally: publication date of the original source, geolocation of the subject in accordance with W3C Recommendation standards, fact-checking status, and purpose of the post.
      • 1.1.4.1.2 Editing fields of their own post.
    • 1.1.4.2 Interest Areas: (See "1.2.1.2 Interest Areas")
      • 1.1.4.2.1 Creating an interest area by providing a title, tags defined by Wikidata to describe the focus of the IA, the IA's access levels (See item "1.2.1.2.5" about access levels), and the set of IAs that the new IA will consist of in case the new IA is a collection of other IAs.
      • 1.1.4.2.2 Editing fields of interest areas which they have owner or moderation access level except. (See item "1.2.1.2.5" about access levels)
      • 1.1.4.2.3 Following other IAs.
      • 1.1.4.2.4 Joining private IAs. (See item "1.2.1.2.5" about access levels)
      • Users shall be able to request to join a private interest area.
      • 1.1.4.2.5 Creating posts in interest areas which they have an access level higher than viewer. (See item "1.2.1.2.5" about access levels)

1.2 System Requirements

1.2.1 Content

  • System shall have a certain structure of content and content containers as follows:

1.2.1.1 Post

  • 1.2.1.1.1 Shall have an IA.
  • 1.2.1.1.2 Shall have a title.
  • 1.2.1.1.3 Shall have a main body that consists of only a main non-empty link, that is the target of the post in question, and an optional text for the creator to comment on this target link or describe it.
  • 1.2.1.1.4 Shall contain required relevant metadata:
    • At least one semantic label (tag) that utilizes the tagging system on the platform, which uses Wikidata knowledge base (See "1.2.3.1 Tags").
    • Source - Which source of media does this link originate from?
    • Creator - Either a person (author, photographer etc.) or an entity in accordance with the utilized tagging system.
    • Creation date.
  • 1.2.1.1.5 Shall contain optional relevant metadata:
  • 1.2.1.1.7 Shall specify its purpose by labels. (e.g. documentation, learning, research, news, discussion, sharing).

1.2.1.2 Interest Areas (IA):

  • 1.2.1.2.1 Shall consist of posts created by their users or posts created within their nested IAs.
  • 1.2.1.2.2 Shall be able to consist of a collection of other IAs (nested).
  • 1.2.1.2.3 Shall obtain at least one semantic label(tag) during their creation. IA tags only show the topic scope of an IA and shall utilize the main tagging system on the platform, which uses Wikidata knowledge base (See "1.2.3.1 Tags").
    • Users shall be able to alter the tags of an IA later.
  • 1.2.1.2.5 Offers various access levels: (See 1.1.4.2.8 for managing roles)
    • Public:
      • Owner: Creator of the IA.
      • Moderator: Users invited by the owner to administer the IA.
      • Creator: Users who meet the necessary requirements set by the owner and moderators for this IA.
      • Consumer: Everyone except those who are explicitly blocked.
    • Private:
      • Owner: Creator of the IA.
      • Moderator: Users invited by the owner to administer the IA.
      • Creator: Users invited by either the owner or moderators.
      • Consumer: Users invited by either the owner or moderators.
    • The private IAs' access level is immutable for privacy and security reasons.
    • Personal:
      • Owner: Creator of the IA.
      • Moderator: Nobody.
      • Creator: Nobody.
      • Consumer: Nobody.
    • Personal IAs are not listed for any user other than the creator.

1.2.1.3 Home Page for each user:

  • Each Home Page shall be personalized for its user and shall achieve this by:
    • 1.2.1.3.1 Displaying recent posts from followed interest areas and users.

1.2.2 Search and Filtering

  • 1.2.2.1 The system shall allow users to search for posts, users, and IAs based on semantic labels, metadata, and interest areas.
  • 1.2.2.4 The system shall allow public and private IAs to be searchable.

1.2.3 Labeling

1.2.3.1 Tags

  • 1.2.3.1.1 The system shall utilize Wikidata API, in order to implement a semantic labeling mechanism on the platform and this mechanism shall appear in the form of tags under each post or IA.
  • 1.2.3.1.2 Upon user interaction, each tag shall be able to display more tags, to which it is semantically related.
  • 1.2.3.1.3 The system shall facilitate post and IA searching based on these tags.
  • 1.2.3.1.5 Tags shall allow users to find interest areas, users, and posts related to themselves.

1.2.5 Account Management

  • 1.2.5.1 When a user's account is deleted, all account information including the username, password, phone number, and email address shall be deleted from the database.
  • 1.2.5.2 All private IAs created by the deleted account shall be deleted along with the posts created in them.
  • 1.2.5.3 Public posts, comments, private IAs, and public IAs created by the deleted account shall remain visible on the platform.
  • 1.2.5.4 The system shall not allow creating more than one account with the same email address. The attempt to do so shall prompt a warning.
  • 1.2.5.5 The system shall check the birthday of a user during the access to age-restricted content. This information is immutable after account creation.

2. Non-Functional Requirements

2.1 Platforms

  • 2.1.1 Application shall be available for Web and Android platforms.
  • 2.1.2 The web version of the application shall be compatible with commonly used web browsers, including Google Chrome, Mozilla Firefox, and Safari.
  • 2.1.3 The Android version of the application shall be compatible with Android 5.0 and higher.

2.2 Security

  • 2.2.1 User authorization information shall be encrypted.
  • 2.2.2 The application shall implement strong password requirements and provide guidance to users on creating secure passwords.

0.1.0-alpha

31 Oct 18:49
45b936f
Compare
Choose a tag to compare
0.1.0-alpha Pre-release
Pre-release

Build and Deployment Instructions

Pre-requisites

  • Docker
  • Docker-Compose
  • Git

Pre-build

  1. Clone the Repository

    git clone https://github.com/bounswe/bounswe2023group8.git
    
  2. Backend Environment Configuration (Required)
    Navigate to the backend directory:

    cd bounswe2023group8/app/backend/enigma
    

    Create a .env file and populate it with values based on the .env.example file present in the same directory. If you have any problem determining the values, contact @bakikucukcakiroglu or @bahadirgezer to get a valid .env file.

  3. Frontend Environment Configuration (Required)
    Navigate to the web directory and modify the .env.development file:

    cd bounswe2023group8/app/web
    

    Replace IP of the REACT_APP_BACKEND_API_URLwith the IP of the host machine.

Build steps

  1. Navigate to App Directory

    cd bounswe2023group8/app
    
  2. Start Services with Docker-Compose

    docker-compose up
    

After running the above steps, your application should be up and running. You can send requests to 80 port of the host machine. Make sure to check any logs for potential issues during startup.

Requirements

User Requirements

1.1.1 Registration and Login

  • 1.1.1.1 Guests:

    • 1.1.1.1.1: Register giving the following information; email, password, username, birthday.
  • 1.1.1.2 Users:

    • 1.1.1.2.1: Login by providing either email and password or username and password.
    • 1.1.1.2.2: Logout.
    • 1.1.1.2.4: Reset their passwords using the 'Forgot Password?' option.

1.1.2 Account

  • 1.1.2.1 Guests:
    • Guests must verify their account via email before they can be considered as users.

1.1.3 User-to-User Interactions

  • Users:
    • 1.1.3.1: View other users' profiles and see their publicly viewable data such as:
      • Public posts (posts they created in public IAs).
      • Names of their public and private IAs.
      • Followers and followings.
      • Tags they are interested in.

Non-Functional Requirements

2.1 Platforms

  • 2.1.1: The application shall be available for Web and Android platforms.

Group8-Practice-App-Release-v.0.2.1

15 May 11:29
Compare
Choose a tag to compare
Pre-release

Minor fixes to syntax erros

Group8-Practice-App-Release-v.0.2

13 May 17:31
1d43722
Compare
Choose a tag to compare
Pre-release
Update milestone2.md