From 3db3bc75b0a330b1307c30062fc37cc9a83e8755 Mon Sep 17 00:00:00 2001
From: Andreas Burbach <aburbach@compeon.de>
Date: Tue, 30 Nov 2021 13:01:16 +0100
Subject: [PATCH] new lines

---
 social_network/README.md | 536 +++++++++++++++++++--------------------
 1 file changed, 256 insertions(+), 280 deletions(-)

diff --git a/social_network/README.md b/social_network/README.md
index b81e80b..507665b 100644
--- a/social_network/README.md
+++ b/social_network/README.md
@@ -47,7 +47,7 @@ Create the database with
 and start the server with
 > python manage.py runserver
 
-the following page should showup if you open [http://127.0.0.1:8000/](http://127.0.0.1:8000/) in your browser.
+the default django information page should showup if you open [http://127.0.0.1:8000/](http://127.0.0.1:8000/) in your browser.
 
 ## Request API for the URLs
 
@@ -56,340 +56,316 @@ For authorization use the header name "Authorization" and the value "Token <toke
 
 #### Authentication
 ##### POST url: ".../authentication/register/"
-Register a user
-
-Requestbody:
-{
-    "username": "username",
-    "password": "password",
-    "email": "
-}
-
-Responsebody:
-{
-    "token": "token"
-}
+Register a user  
+
+Requestbody:  
+{  
+    "username": "username",  
+    "password": "password",  
+    "email": "email"  
+}  
+Responsebody:  
+{  
+    "token": "token"  
+}  
 
 ##### POST url: ".../authentication/login/"
-Login a user
-
-Requestbody:
-{
-    "username": "username",
-    "password": "password"
-}
-
-Responsebody:
-{
-    "token": "token"
-}
+Login a user  
+
+Requestbody:  
+{  
+    "username": "username",  
+    "password": "password"  
+}  
+Responsebody:  
+{  
+    "token": "token"  
+}  
 
 ##### POST url: ".../authentication/logout/"
-Logout a user
+Logout a user  
 
-Requestbody: None
-
-Responsebody: None
-
-Success: HTTP/200
+Requestbody: None  
+Responsebody: None  
+Success: HTTP/200  
 
 ##### GET url: ".../authentication/validate/"
-Validate a token
-
-Requestbody: None
-
-Responsebody: None
+Validate a token  
 
-Success: HTTP/200
+Requestbody: None  
+Responsebody: None  
+Success: HTTP/200  
 
 #### Account
 ##### GET url: ".../accounts/show/<user_id>/"
-Show a public user
-
-Requestbody: None
-
-Responsebody:
-[{
-    "user": {
-        "id": ...,
-        "username": ...,
-        "email": ...,
-        "date_joined": "..."
-    },
-    "image": "...",
-    "biography": "...",
-    "related_by": [],
-    "related_to": [],
-    "statements": []
-}]
+Show a public user  
+
+Requestbody: None  
+Responsebody:  
+[{  
+    "user": {  
+        "id": ...,  
+        "username": ...,  
+        "email": ...,  
+        "date_joined": "..."  
+    },  
+    "image": "...",  
+    "biography": "...",  
+    "related_by": [],  
+    "related_to": [],  
+    "statements": []  
+}]  
 
 
 ##### GET url: ".../accounts/show/own/"
-Show the own user
-
-Requestbody: None
-
-Responsebody:
-[{
-    "user": {
-        "id": ...,
-        "username": ...,
-        "email": ...,
-        "date_joined": "..."
-    },
-    "image": "...",
-    "biography": "...",
-    "related_by": [],
-    "related_to": [],
-    "statements": []
-}]
+Show the own user  
+
+Requestbody: None  
+Responsebody:  
+[{  
+    "user": {  
+        "id": ...,  
+        "username": ...,  
+        "email": ...,  
+        "date_joined": "..."  
+    },  
+    "image": "...",  
+    "biography": "...",  
+    "related_by": [],  
+    "related_to": [],  
+    "statements": []  
+}]  
 
 ##### GET url: ".../accounts/show/all/"
-Show all public users
-
-Requestbody: None
-
-Responsebody:
-[{
-    "user": {
-        "id": ...,
-        "username": ...,
-        "email": ...,
-        "date_joined": "..."
-    },
-    "image": "...",
-    "biography": "...",
-    "related_by": [],
-    "related_to": [],
-    "statements": []
-},
-...
-]
+Show all public users  
+
+Requestbody: None  
+Responsebody:  
+[{  
+    "user": {  
+        "id": ...,  
+        "username": ...,  
+        "email": ...,  
+        "date_joined": "..."  
+    },  
+    "image": "...",  
+    "biography": "...",  
+    "related_by": [],  
+    "related_to": [],  
+    "statements": []  
+},  
+...  
+]  
 
 ##### PUT url: ".../accounts/update/"
-Updates the own account. Only "Biography" and "Image" are allowed to be updated.
+Updates the own account. Only "Biography" and "Image" are allowed to be updated.  
 
-Requestbody:
-{
-    "biography": "...",
-    "file": "..."
-}
-
-Responsebody: None
-
-Success: HTTP/200
+Requestbody:  
+{  
+    "biography": "...",  
+    "file": "..."  
+}  
+Responsebody: None  
+Success: HTTP/200  
 
 ##### PUT url: ".../accounts/follow/<user_id>/"
-Follow a user
-
-Requestbody: None
-
-Responsebody: None
+Follow a user  
 
-Success: HTTP/200
+Requestbody: None  
+Responsebody: None  
+Success: HTTP/200  
 
 ##### PUT url: ".../accounts/unfollow/<user_id>/"
-Unfollow a user
+Unfollow a user  
 
-Requestbody: None
-
-Responsebody: None
-
-Success: HTTP/200
+Requestbody: None  
+Responsebody: None  
+Success: HTTP/200  
 
 ##### PUT url: ".../accounts/operation/add/statement/"
-Add a statement to the own account
-
-Requestbody:
-{
-    "input": "<statement>"
-    "reactions": { "to": <reaction_to_a_statement_id>, "relation": <"attack" or "support">}   <--- optional
-}
-
-Responsebody:
- {
-    "id": ...,
-    "author": {
-        "user": {
-            "id": ...,
-            "username": "..."
-        },
-        "image": "..."
-    },
-    "content": "...",
-    "tagged": [],
-    "mentioned": [],
-    "created": "...",
-    "relation_to_parent": ...
-}
-
-Success: HTTP/200
+Add a statement to the own account  
+
+Requestbody:  
+{  
+    "input": "<statement>"  
+    "reactions": { "to": <reaction_to_a_statement_id>, "relation": <"attack" or "support">}   <--- optional  
+}  
+Responsebody:  
+ {  
+    "id": ...,  
+    "author": {  
+        "user": {  
+            "id": ...,  
+            "username": "..."  
+        },  
+        "image": "..."  
+    },  
+    "content": "...",  
+    "tagged": [],  
+    "mentioned": [],  
+    "created": "...",  
+    "relation_to_parent": ...  
+}  
+Success: HTTP/200  
 
 #### Contents
 ##### GET url: ".../contents/statements/get/<statement_id>/"
-Get a statement
-
-Requestbody: None
-
-Responsebody:
-[
-    {
-        "id": ...,
-        "author": {
-            "user": {
-                "id": ...,
-                "username": "..."
-            },
-            "image": "..."
-        },
-        "content": "...",
-        "tagged": [],
-        "mentioned": [],
-        "created": "...",
-        "relation_to_parent": ...,
-        "reactions": []
-    }
-]
+Get a statement  
+
+Requestbody: None  
+Responsebody:  
+[  
+    {  
+        "id": ...,  
+        "author": {  
+            "user": {  
+                "id": ...,  
+                "username": "..."  
+            },  
+            "image": "..."  
+        },  
+        "content": "...",  
+        "tagged": [],  
+        "mentioned": [],  
+        "created": "...",  
+        "relation_to_parent": ...,  
+        "reactions": []  
+    }  
+]  
 
 ##### GET url: ".../contents/statements/with/hashtag/"
-Get all statements with a hashtag
-
-Requestbody: None
-
-Queryparameters: "?q=<hashtag>"
-
-Responsebody:
-[
-    {
-        "id": ...,
-        "author": {
-            "user": {
-                "id": ...,
-                "username": "..."
-            },
-            "image": "..."
-        },
-        "content": "...",
-        "tagged": [],
-        "mentioned": [],
-        "created": "...",
-        "relation_to_parent": ...,
-        "reactions": []
-    },
-    ...
-]
+Get all statements with a hashtag  
+
+Requestbody: None  
+Queryparameters: "?q=<hashtag>"  
+Responsebody:  
+[  
+    {  
+        "id": ...,  
+        "author": {  
+            "user": {  
+                "id": ...,  
+                "username": "..."  
+            },  
+            "image": "..."  
+        },  
+        "content": "...",  
+        "tagged": [],  
+        "mentioned": [],  
+        "created": "...",  
+        "relation_to_parent": ...,  
+        "reactions": []  
+    },  
+    ...  
+]  
 
 ##### GET url: ".../contents/statements/feed/"
-Get all statements of the accounts that are followed by the user
-
-Requestbody: None
-
-Responsebody:
-[
-    {
-        "id": ...,
-        "author": {
-            "user": {
-                "id": ...,
-                "username": "..."
-            },
-            "image": "..."
-        },
-        "content": "...",
-        "tagged": [],
-        "mentioned": [],
-        "created": "...",
-        "relation_to_parent": ...,
-        "reactions": []
-    },
-    ...
-]
+Get all statements of the accounts that are followed by the user  
+
+Requestbody: None  
+Responsebody:  
+[  
+    {  
+        "id": ...,  
+        "author": {  
+            "user": {  
+                "id": ...,  
+                "username": "..."  
+            },  
+            "image": "..."  
+        },  
+        "content": "...",  
+        "tagged": [],  
+        "mentioned": [],  
+        "created": "...",  
+        "relation_to_parent": ...,  
+        "reactions": []  
+    },  
+    ...  
+]  
 
 ##### GET url: ".../contents/trending/hashtag/"
-Get all trending hashtags which are most used in statements
-
-Requestbody: None
+Get all trending hashtags which are most used in statements  
 
-Reponsebody: ++++++ TODO:  Setting of a hashtag not clear ++++++
+Requestbody: None  
+Reponsebody: ++++++ TODO:  Setting of a hashtag not clear ++++++  
 
 
 #### Search
 ##### GET url: ".../search/"
-Searchs for a user or hashtag
-
-Requestbody: None
-
-Queryparameters: "?q=<search_query>&filter=<"user" or "hashtag">"
-
-Responsebody:
-{
-    "accounts": [
-                    {
-                    "user": {
-                        "id": ...,
-                        "username": "...",
-                        },
-                    "image": "..."
-                    },
-                    ...
-    ],
-    "hashtags": [
-                    {
-                    "id": ...,
-                    "tag": "..."
-                    },
-                    ...
-    ]
-}
+Searchs for a user or hashtag  
+
+Requestbody: None  
+Queryparameters: "?q=<search_query>&filter=<"user" or "hashtag">"  
+Responsebody:  
+{  
+    "accounts": [  
+                    {  
+                    "user": {  
+                        "id": ...,  
+                        "username": "...",  
+                        },  
+                    "image": "..."  
+                    },  
+                    ...  
+    ],  
+    "hashtags": [  
+                    {  
+                    "id": ...,  
+                    "tag": "..."  
+                    },  
+                    ...  
+    ]  
+}  
 
 ## Core Database structure
 
-The project requieres the base authentication database structure from django and extends it with the following tables:
+The project requieres the base authentication database structure from django and extends it with the following tables:  
 
 1. "the_social_network_account"
-    with:
-    user_id: int as primary key and foreign key to django auth_user
-    image: varchar(100)
-    biography: varchar(1000)
+    with  
+    user_id: int as primary key and foreign key to django auth_user  
+    image: varchar(100)  
+    biography: varchar(1000)  
 
 2. "the_social_network_statement"
-    with:
-    id: int as primary key
-    author_id: int as foreign key to the_social_network_account
-    content: varchar(120)
-    created: datetime
+    with  
+    id: int as primary key  
+    author_id: int as foreign key to the_social_network_account  
+    content: varchar(120)  
+    created: datetime  
 
 3. "the_social_network_accounttagging"
-    with:
-    id: int as primary key
-    created: datetime
-    account_id: int as foreign key to the_social_network_account
-    statement_id: int as foreign key to the_social_network_statement
+    with  
+    id: int as primary key  
+    created: datetime  
+    account_id: int as foreign key to the_social_network_account  
+    statement_id: int as foreign key to the_social_network_statement  
 
 4. "the_social_network_hashtag"
-    with:
-    id: int as primary key
-    tag: varchar(30)
-    created: datetime
+    with  
+    id: int as primary key  
+    tag: varchar(30)  
+    created: datetime  
 
 5. "the_social_network_hashtagtagging"
-    with:
-    id: int as primary key
-    created: datetime
-    hashtag_id: int as foreign key to the_social_network_hashtag
-    statement_id: int as foreign key to the_social_network_statement
+    with  
+    id: int as primary key  
+    created: datetime  
+    hashtag_id: int as foreign key to the_social_network_hashtag  
+    statement_id: int as foreign key to the_social_network_statement  
 
 6. "the_social_network_reaction"
-    with:
-    id: int as primary key
-    created: datetime
-    vote: small uint
-    child_id: int as foreign key to the_social_network_statement
-    parent_id: int as foreign key to the_social_network_statement
+    with  
+    id: int as primary key  
+    created: datetime  
+    vote: small uint  
+    child_id: int as foreign key to the_social_network_statement  
+    parent_id: int as foreign key to the_social_network_statement  
 
 7. "the_social_network_relationship"
-    with:
-    id: int as primary key
-    created: datetime
-    from_account_id: int as foreign key to the_social_network_account
-    to_account_id: int as foreign key to the_social_network_account
+    with  
+    id: int as primary key  
+    created: datetime  
+    from_account_id: int as foreign key to the_social_network_account  
+    to_account_id: int as foreign key to the_social_network_account  
-- 
GitLab