Skip to content

Milestone 1 Report

Dilruba Reyyan Kılıç edited this page Nov 1, 2018 · 23 revisions

Milestone #1 Report

Executive Summary

As a group, we are following our milestones strictly and suiting to the timetable successfully.

  • Our first milestone was re-analyzing requirements and the project plan according to the feedback from our customer. It was due to 16.10.2018 and implemented successfully.
  • The next one was initializing the projects and implementing some user authorization functions. It has been completed successfully.
  • The latest one is the customer milestone. In this milestone we need to implement basic memory post to present in the lecture.

List and Status of the Deliverables (upto Customer Milestone 1)

Deliverable Backend Status Frontend Status Android Status
Requirements v2 Not Applicable, But Completed Not Applicable, But Completed Not Applicable, But Completed
Project Plan v2 Not Applicable, But Completed Not Applicable, But Completed Not Applicable, But Completed
Signup Functionality Completed Completed Completed
Signin Functionality Completed Completed Completed
Signout Functionality Completed Completed Completed
Email Confirmation Functionality Completed Completed
Password Reset Functionality Completed Completed
Basic Memory Post Completed In Progress

Coding Work

Member Subteam Work Done
Serdar Ada Android Sign-in, Sign-out, Memory Post Listing Design
Ramazan Arslan Frontend Sign-in, Memory Post Listing on Homepage, Annotation to Image
Cemal Burak Aygün Backend
  • Authentication/User: Signout, Email Confirmation, Password Reset
  • Memory-Post: List, Update, Delete Functionalities
Faik Emre Derin Android
Dilruba Reyyan Kılıç Android Sign-Up, Create Memory Post Design
Enes Koşar Backend
  • Authentication/User: Signup Functionality
Muhammed Fatih Balın Backend
  • Authentication/User: Signin Functionality
  • Memory-Post: Create Functionality
Bekir Burak Aslan Frontend Sing-up, Memory Post Listing on Homepage, Maps

Requirements

1. Functional Requirements

1.1 User Requirements

  • 1.1.1 Sign-Out

    • 1.1.1.1 Users shall be able to sign out from the system.
  • 1.1.2 Profile

    • 1.1.2.1 Users shall be able to view the followings on the profile of other members.
      • Real name
      • Username
      • Profile picture
      • Created memory-posts
    • 1.1.2.2 Users shall be able to view the followings on their own profile:
      • All account information except password
      • Created memory-posts
      • Liked memory-posts
    • 1.1.2.3 Users shall be able to update the followings on their profile.
      • Username
      • Real name
      • Profile picture
      • Email address
      • Password
    • 1.1.2.4 Users shall be able to delete their account on their profile.
  • 1.1.3 Memory-Post

    • 1.1.3.1 Users shall be able to view any memory-posts.
    • 1.1.3.2 Users shall be able to create memory-posts.
    • 1.1.3.3 Users shall be able to update all the memory-items of their memory-posts.
    • 1.1.3.4 Users shall be able to delete their memory-posts.
    • 1.1.3.5 Users shall be able to like or dislike any memory-posts.
  • 1.1.4 Comment

    • 1.1.4.1 Users shall be able to add comments to the comment section of any memory-posts.
    • 1.1.4.2 Users shall be able to delete their comments.
  • 1.1.5 Annotation

    • 1.1.5.1 Users shall be able to view any annotations.
    • 1.1.5.2 Users shall be able to create annotations for the rectangular parts of the following items: (For text, "rectangular part" means the selection of some consecutive words)
      • Memory-Title
      • Memory-Story
      • Memory-Media (images only)
      • Comments
    • 1.1.5.3 Users shall be able to update their annotations.
    • 1.1.5.4 Users shall be able to delete their annotations.
  • 1.1.6 Search

    • 1.1.6.1 Users shall be able to search for any combinations of the following items of memory-posts via search bar:
      • Memory-Title
      • Memory-Story
      • Memory-Time
      • Memory-Location
      • Memory-Tag
    • 1.1.6.2 Users shall be able to search for annotations via search bar.
    • 1.1.6.3 Users shall be able to search for memory-posts on main-map.
    • 1.1.6.4 Users shall be able to search for any combinations of the following items of accounts via search bar:
      • Username
      • Real name

1.2 Admin Requirements

  • 1.2.1 Admins shall have all the abilities users have.
  • 1.2.2 Admins shall be able to ban any accounts in the system.
  • 1.2.3 Admins shall be able to delete any of the followings from the system:
    • Accounts
    • Memory-Posts
    • Annotations
    • Comments

1.3 Guest Requirements

  • 1.3.1 Sign-In

    • 1.3.1.1 Guests shall be able to sign in (if they have an account) with one of the following combinations:
      • Username and password.
      • Email address and password.
  • 1.3.2 Sign-Up

    • 1.3.2.1 Guests shall be able to sign up to the system by providing username, email, password (with confirmation) and real name (optional).
  • 1.3.3 Memory-Post

    • 1.3.3.1 Guests shall be able to view only 10 most recently created memory-posts.
    • 1.3.3.2 Guests shall be able to view all parts of a memory-post.
  • 1.3.4 Annotation

    • 1.3.4.1 Guests shall be able to view all the annotations of a memory-post.

1.4 System Requirements

  • 1.4.1 Sign-Up

    • 1.4.1.1 The system shall require email confirmation on signup.
  • 1.4.2 Password

    • 1.4.2.1 The system shall provide users with a password recovery mechanism.
  • 1.4.3 Recommendation

    • 1.4.3.1 The system shall recommend memory-posts to users.

2. Non-functional Requirements

2.1 Accessibility

  • 2.1.1 The language of the system shall be English.

2.2 Availability

  • 2.2.1 The system shall have a web application.
    • 2.2.1.1 3 most recent main versions of Google Chrome shall be supported.
  • 2.2.2 The system shall have an Android application.
    • 2.2.2.1 3 most recent main versions of Android shall be supported.

2.3 Security

  • 2.3.1 Passwords shall be kept encrypted in the database.
  • 2.3.2 Members' email addresses should be hidden to other members.

2.4 Annotation

  • 2.4.1 The annotations shall be compliant with The W3C Web Annotation Data Model.

2.5 Map

  • 2.5.1 Google Maps services shall be used for main-map and memory-maps.

Design

Project Plan

Android Team: Dilruba Reyyan, Serdar, Faik Emre
Backend Team: Cemal Burak, Muhammed Fatih, Enes
Frontend Team: Ramazan, Bekir Burak

Task Start Due Assigned
Requirements Review 25.09.2018 16.10.2018 Everyone
Project Plan Review 25.09.2018 16.10.2018 Everyone
Milestone 1: Requirements v2 & Project Plan v2 16.10.2018 16.10.2018 Everyone
Initialization of the projects
Signup, Signin & Signout Implementation
Email Confirmation Implementation
Password Reset Implementation
16.10.2018 22.10.2018 Every Team
Milestone 2: Initialization & User/Authorization 23.10.2018 23.10.2018 Everyone
Milestone 1
Milestone 2
Basic Memory-Post Functionalities
23.10.2018 30.10.2018 Every Team
Customer Milestone 1 30.10.2018 30.10.2018 Everyone
Full Memory-Post Functionalities
Memory-Tag Functionalities
23.10.2018 13.11.2018 Every Team
Milestone 3: Memory-Post & Memory-Tag 13.11.2018 13.11.2018 Everyone
Comment Functionalities
Homepage Implementation
Main-Map and Memory-Map Implementation
Annotation Functionalities
13.11.2018 04.12.2018 Every Team
Milestone 4: Comment & Homepage & Map & Annotation 04.12.2018 04.12.2018 Everyone
Milestone 1
Milestone 2
Milestone 3
Milestone 4
30.10.2018 04.12.2018 Every Team
Customer Milestone 2 04.12.2018 04.12.2018 Everyone
Like/Dislike Functionality
Profile Page Implementation
Search System Implementation
Recommendation System Implementation
04.12.2018 18.12.2018 Every Team
Milestone 5: Like/Dislike & Profile & Search & Recommendation 18.12.2018 18.12.2018 Everyone

Code Structure and Group Process

For now, we haven't merged anything to the master. The reason is every team is working on their own branches. The branch backend is the master of backend team. Whenever any task is assigned or needs review, the assignee creates a subbranch and works on it. After the assignee is done with it totally, creates a pull request and waits for the review of at least one team member. This mechanism applies to both android and frontend, too.

Evaluation of Tools and Managing the Project

Communication Tools

  • Slack: In CMPE352, we were not able to use Slack as effectively as this year. This year, we have lots of coding stuff, need to be organized and flexible to highlight the codes within the messages. For this purposes, we have used Slack within the team and subteams.

Implementation and Control Tools

  • Django for API: We have decided to use Django last year and used it for implementation of API. It has strong capabilities for web development with the Python.

  • Postman: Probably, the best API development application in the market. Easy to use and maintain.

  • Android Studio:

Clone this wiki locally