Skip to content

Meeting 10.2

Yavuz Samet Topçuoğlu edited this page May 19, 2022 · 3 revisions

Meeting 10.2

Meeting Information

Date : 08/05/2022 14:30 - 16:20

Duration: 110 minutes

Platform : Discord

Participants

  • Alper Canberk Balcı
  • Halil Burak Pala
  • Mehmet Emre Akbulut
  • Sinan Kerem Gündüz
  • Kardelen Demiral
  • Yavuz Samet Topçuoğlu
  • Mehmet Akif Yılmaz
  • Burak Mert
  • Engin Oğuzhan Şenol
  • Baver Bengin Beştaş
  • Oğuzhan Demirel
  • Buse Tolunay

Description

  • Meeting about the Practice-app. Making last decisions.

Agenda

  • Determining endpoints of our API
  • Creating an initial Django app
  • Determining and implementing our models
  • Division of labor
  • Branching and pull request conventions
  • Trying github branching and pull request system

Discussion

  • We decided not to use the endpoints we decided in our previous meeting and created a new structure for our practice-app.
  • We determined our endpoints and functions together:

Endpoints and Their HTTP Functions

# Endpoint GET POST
1 /post/api Get all posts Create a post
2 /post-info/api/<post-id> Get post with id post-id Update the post with id post-id
3 /category/api Get all categories Create a category
4 /category-info/api/<category-id> Get posts with category with id category-id Update the category with id category-id
5 /comment/api/<post-id> Get all comments of the post with id post-id Create a comment under the post with id post-id
6 /comment-info/api/<comment-id> Get comment with id comment-id Update the comment with id comment-id
7 /article/api Get all articles Create an article
8 /article-info/api/<article-id> Get article with id article-id Update the article with id article-id
9 /rate-post/api/<post-id> Get number of upvotes and downvotes of a post with id post-id Upvote or downvote a post with id post-id
10 /rate-comment/api/<comment-id> Get number of upvotes and downvotes of a comment with id comment-id Upvote or downvote a comment with id comment-id
11 /rate-article/api/<article-id> Get number of upvotes and downvotes of an article with id article-id Upvote or downvote an article with id article-id
12 /user/api Get all users Create a new user

Models

We have 4 models: Category, Post, Comment and Article. We implemented these models. Here is their fields:

  • Category
    • name: CharField
    • definition: CharField
  • Post
    • title: CharField(null=false)
    • body: CharField(null=false)
    • category: ForeignKey(Category)
    • user: ForeignKey(User, null=false)
    • timestamp: DateTimeField
    • country: CharField
    • covid19cases: JSONField
    • nof_upvotes: IntegerField(default=0)
    • nof_downvotes: IntegerField(default=0)
  • Comment
    • body: CharField(null=false)
    • post: ForeignKey(Post, null=false)
    • user: ForeignKey(User, null=false)
    • timestamp: DateTimeField
    • city_name: CharField
    • weather: CharField
    • nof_upvotes: IntegerField(default=0)
    • nof_downvotes: IntegerField(default=0)
  • Article
    • title: CharField(null=false)
    • body: CharField(null=false)
    • category: ForeignKey(Category)
    • user: ForeignKey(User, null=false)
    • timestamp: DateTimeField
    • nof_upvotes: IntegerField(default=0)
    • nof_downvotes: IntegerField(default=0)

External APIs To Be Used

We decided to use 3 external public API:

  • Meta Weather API: We are going to include current weather info in comments. By using the city_name field of our Comment model, we are going to get weather info and put it into the weather field.
  • Dictionary API: We are going to get definition of the name of a category by using this API. By using name field, we are going to get the definition of this word and put it in definition field.
  • Coronavirus API: We are going to include number of confirmed coronavirus cases and number of deaths in a country on the day of the post sent in our posts by using this API. By using country field in our posts, we are going to get number of confirmed coronavirus cases and deaths in that country and put it in covid19cases field.

Django Apps

Our django project will include these apps:

  1. user: This app will handle /user/api endpoint.
  2. category: This app will handle /category/api endpoint. Category model will be in this app.
  3. category_info: This app will handle /category-info/api/<category-id> endpoint.
  4. post: This app will handle /post/api endpoint. Post model will be in this app.
  5. post_info: This app will handle /post-info/api/<post-id> endpoint.
  6. comment: This app will handle /comment/api/<post-id> endpoint. Comment model will be in this app.
  7. comment_info: This app will handle /comment-info/api/<comment-id> endpoint.
  8. article: This app will handle /article/api endpoint. Article model will be in this app.
  9. article_info: This app will handle /article-info/api/<article-id> endpoint.
  10. rate_post: This app will handle /rate-post/api/<post-id> endpoint.
  11. rate_comment: This app will handle /rate-comment/api/<comment-id> endpoint.
  12. rate_article: This app will handle /rate-article/api/<article-id> endpoint.
  13. _main: This app will be the main app. It will handle authentication and redirecting to the frontend pages of our endpoints.

Some Notes About Implementation

  • Every person will implement front-end parts of his/her own endpoint.
  • There will be at least one HTML page for every end-point.
  • URL structure for an app with name app-name will be like this:
    • /<app-name>/<optional-values> : Front End implementation
    • /<app-name>/api/<optional-values> : REST API implementation
  • Every person will write unit-tests of the endpoint he/she will develop.
  • Every person will document his/her endpoint clearly. There will be readme files inside every app.
  • Every person will write requirements about his/her endpoint.
  • A wiki page for collecting documentations about practice-app will be created.

Branching Conventions

  • There will be one issue for every branch.

  • Branches will have name as:

    practice-app/<branch-type>/<topic-name>-#<issue number>

    Examples:

    practice-app/feature/comment-info-#154 practice-app/bug/post-#156

  • There will be 2 reviewers for every pull request and approval of at least one of them will be enough for merging.

Other Discussion Topics

  • We created initial structure of our Django app.
  • We created our models.
  • We tried out github branching and pull request system. We created a branch and a pull request to merge it together for trial purposes.

Action Items

# Task Assignee Reviewer Review Deadline Task Deadline
1 Documenting meeting notes Halil Burak Pala Alper Canberk Balcı 10.05.2022 20:00 09.05.2022 16:00
2 Creating /user endpoint Mehmet Emre Akbulut Kardelen Demiral,Buse Tolunay 14.05.2022 20:00 14.05.2022 16:00
3 Writing all unit tests for /user endpoint Mehmet Emre Akbulut Kardelen Demiral,Buse Tolunay 14.05.2022 20:00 14.05.2022 16:00
4 Creating /category endpoint Burak Mert Mehmet Akif Yılmaz,Kardelen Demiral 14.05.2022 20:00 14.05.2022 16:00
5 Writing all unit tests for /category endpoint Burak Mert Mehmet Akif Yılmaz,Kardelen Demiral 14.05.2022 20:00 14.05.2022 16:00
6 Creating /category-info endpoint Buse Tolunay Burak Mert, Halil Burak Pala 14.05.2022 20:00 14.05.2022 16:00
7 Writing all unit tests for /category-info endpoint Buse Tolunay Burak Mert, Halil Burak Pala 14.05.2022 20:00 14.05.2022 16:00
8 Creating /post endpoint Yavuz Samet Topçuoğlu Mehmet Emre Akbulut, Alper Canberk Balcı 14.05.2022 20:00 14.05.2022 16:00
9 Writing all unit tests for /post endpoint Yavuz Samet Topçuoğlu Mehmet Emre Akbulut,Alper Canberk Balcı 14.05.2022 20:00 14.05.2022 16:00
10 Creating /post-info endpoint Kardelen Demiral Yavuz Samet Topçuğlu, Sinan Kerem Gündüz 14.05.2022 20:00 14.05.2022 16:00
11 Writing all unit tests for /post-info endpoint Kardelen Demiral Yavuz Samet Topçuoğlu, Sinan Kerem Gündüz 14.05.2022 20:00 14.05.2022 16:00
12 Creating /comment endpoint Halil Burak Pala Burak Mert, Sinan Kerem Gündüz 14.05.2022 20:00 14.05.2022 16:00
13 Writing all unit tests for /comment endpoint Halil Burak Pala Sinan Kerem Gündüz, Burak Mert 14.05.2022 20:00 14.05.2022 16:00
14 Creating /comment-info endpoint Sinan Kerem Gündüz Halil Burak Pala, Oğuzhan Demirel 14.05.2022 20:00 14.05.2022 16:00
15 Writing all unit tests for /comment-info endpoint Sinan Kerem Gündüz Halil Burak Pala, Oğuzhan Demirel 14.05.2022 20:00 14.05.2022 16:00
16 Creating /article endpoint Alper Canberk Balcı Mehmet Akif Yılmaz, Baver Bengin Beştaş 14.05.2022 20:00 14.05.2022 16:00
17 Writing all unit tests for /article endpoint Alper Canberk Balcı Mehmet Akif Yılmaz, Baver Bengin Beştaş 14.05.2022 20:00 14.05.2022 16:00
18 Creating /article-info endpoint Mehmet Akif Yılmaz Alper Canberk Balcı, Oğuzhan Demirel 14.05.2022 20:00 14.05.2022 16:00
19 Writing all unit tests for /article-info endpoint Mehmet Akif Yılmaz Alper Canberk Balcı, Oğuzhan Demirel 14.05.2022 20:00 14.05.2022 16:00
20 Creating /rate-post endpoint Oğuzhan Demirel Mehmet Emre Akbulut,Engin Oğuzhan Şenol 14.05.2022 20:00 14.05.2022 16:00
21 Writing all unit tests for /rate-post endpoint Oğuzhan Demirel Mehmet Emre Akbulut, Engin Oğuzhan Şenol 14.05.2022 20:00 14.05.2022 16:00
22 Creating /rate-comment endpoint Engin Oğuzhan Şenol Baver Bengin Beştaş, Yavuz Samet Topçuoğlu 14.05.2022 20:00 14.05.2022 16:00
23 Writing all unit tests for /rate-comment endpoint Engin Oğuzhan Şenol Baver Bengin Beştaş, Yavuz Samet Topçuoğlu 14.05.2022 20:00 14.05.2022 16:00
24 Creating /rate-article endpoint Baver Bengin Beştaş Engin Oğuzhan Şenol,Buse Tolunay 14.05.2022 20:00 14.05.2022 16:00
25 Writing all unit tests for /rate-article endpoint Baver Bengin Beştaş Engin Oğuzhan Şenol,Buse Tolunay 14.05.2022 20:00 14.05.2022 16:00
26 Creating a main app which handles authentication and creates a user interface for reaching endpoints Halil Burak Pala Mehmet Emre Akbulut 15.05.2022 20:00 15.05.2022 16:00
27 Creating new labels for issues related to practice-app. Alper Canberk Balcı Halil Burak Pala 13.05.2022 20:00 12.05.2022 20:00

🏠 Homepage

👤 Team Members

👤 Former Team Members

📘 About Meetings

Meeting Notes From CMPE352
Meeting Notes From CMPE451

General Meetings

Team Meetings

Backend Team Meetings
Frontend Team Meetings
Mobile Team Meetings

📌 Project

Scenarios

📌 Project Artifacts

💹 Diagrams

📝 Project Plan

📝 Deliverables

🔭 Research

📌 Practice-App

❓ Responses

Clone this wiki locally