From a2cd4820416a52bca48cc968337e0ed6a7bdacb7 Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 19:15:12 +0200 Subject: [PATCH 01/10] Add specification key features --- index.rst | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 index.rst diff --git a/index.rst b/index.rst new file mode 100644 index 0000000..e010da2 --- /dev/null +++ b/index.rst @@ -0,0 +1,39 @@ +.. _Instagram: https://www.instagram.com/ + +DjangoGram +========== + +The project is a social media site inspired by `Instagram`_, built using +Django and Django REST framework. It focuses on fundamental Django +functionalities, including user authentication, content management, and REST +API integration. The site allows for image sharing, user interactions, and +profile management. + +Key features +------------ + +.. rubric:: User registration and authentication + +The application will provide user registration and authentication +functionality, allowing individuals to create accounts, log in, and manage +their profile information. This feature will enable authors to have +personalized accounts and maintain ownership of their published images or +stories. + +.. rubric:: Images gallery + +Users can upload their images to their own site page and maintain access +restrictions. The entire gallery may be marked as private, or public. On +the other hand each single image can be marked as private, or public. + +.. rubric:: Connections + +The site allows its users to create connections. +Each user can send the connection request to another user. +Once the request is approved by the target user, the connection is established. + +.. rubbic:: Site administration + +Site admins cannot delete anything from the site. However admins can mark any +image uploaded to the site as "deleted", or block (deactivate) any registered +account. From 0829904ba767fdd3862b6e7f6aedd180b4e52ecd Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 19:19:04 +0200 Subject: [PATCH 02/10] Add project goals section --- index.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.rst b/index.rst index e010da2..143cd5c 100644 --- a/index.rst +++ b/index.rst @@ -9,6 +9,17 @@ functionalities, including user authentication, content management, and REST API integration. The site allows for image sharing, user interactions, and profile management. +Project goals +------------- + +- Provide a practical learning experience in building a feature-rich social + media platform using Django. +- Focus on user privacy and data management, reflecting real-world + application requirements. +- Encourage best practices in REST API design and implementation. +- Develop an understanding of user role management and administrative + controls within a web application. + Key features ------------ From d5f08214ace2090c4a92dc445d61d166bfb5c44e Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 20:53:15 +0200 Subject: [PATCH 03/10] Add user registration and authentication section --- index.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/index.rst b/index.rst index 143cd5c..43e0175 100644 --- a/index.rst +++ b/index.rst @@ -48,3 +48,13 @@ Once the request is approved by the target user, the connection is established. Site admins cannot delete anything from the site. However admins can mark any image uploaded to the site as "deleted", or block (deactivate) any registered account. + +User registration and authentication +------------------------------------ + +- For anonymous users there will be "Sign Up" and "Sign In" options available + on each page. +- For authenticated users "Logout" option is available from any site page. +- Deactivated users cannot log in and mainly acts as anonymous users. +- Deactivated users will receive a link to request the account restore from + site admins. From fd9bfeefbf43162c57ff0b59e4e0e6c0bdc0d66b Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 23:07:05 +0200 Subject: [PATCH 04/10] Add connections section --- index.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/index.rst b/index.rst index 43e0175..d7aab93 100644 --- a/index.rst +++ b/index.rst @@ -58,3 +58,15 @@ User registration and authentication - Deactivated users cannot log in and mainly acts as anonymous users. - Deactivated users will receive a link to request the account restore from site admins. + +Connections +----------- + +- Authenticated users can review their connection with other users + on the "Connections" page. +- Authenticated users may send a connection request to each other. + Incomming requests are available on a connections page. +- Existing connections may be removed from the connections page, or + from the connected user personal page. +- When users have a connection, they can see personal pages of each other, + even in case some page is marked as "private". From ed9af4326f01ecbff9ef6ba8a470798c924fc126 Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 23:15:12 +0200 Subject: [PATCH 05/10] Add gallery section --- index.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/index.rst b/index.rst index d7aab93..1a570f8 100644 --- a/index.rst +++ b/index.rst @@ -70,3 +70,18 @@ Connections from the connected user personal page. - When users have a connection, they can see personal pages of each other, even in case some page is marked as "private". + +Personal page +------------- + +The personal page is the gallery of images uploaded by a specific user. + +- Authenticated users can upload new images to their gallery. +- Authenticated users can tag their images. +- Authenticated users can remove images from their gallery. +- Authenticated users can comment on images available for them. +- Authenticated users can change their personal page permissions + (e.g. make it public or private). +- Private galleries are not public available, any user must establish + the connection with the gallery owner to obtain access to private + gallery. From 295f6592244ed5bb8fca5fd12e92709a5e70956a Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Tue, 28 Nov 2023 23:20:12 +0200 Subject: [PATCH 06/10] Add notification system section --- index.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/index.rst b/index.rst index 1a570f8..d839fa7 100644 --- a/index.rst +++ b/index.rst @@ -85,3 +85,10 @@ The personal page is the gallery of images uploaded by a specific user. - Private galleries are not public available, any user must establish the connection with the gallery owner to obtain access to private gallery. + +Notifications +------------- + +- Notification should be available from any place of the site. +- When user uploads a new image, a notification is sent to all their + connections. From 46e8942f0d1f1dfe302527813f727706fce0b896 Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Wed, 29 Nov 2023 03:24:10 +0200 Subject: [PATCH 07/10] Add admin actions and user deactivation function description --- index.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/index.rst b/index.rst index d839fa7..87183ad 100644 --- a/index.rst +++ b/index.rst @@ -49,6 +49,17 @@ Site admins cannot delete anything from the site. However admins can mark any image uploaded to the site as "deleted", or block (deactivate) any registered account. +Site administration functions +----------------------------- + +- Admin can remove any image uploaded to the site. The removal reason is + required. Removed image are not to be deleted; images of this kind just + become unavailable for other users. +- Admin can deactivate any registered user, except other admins. Deactivation + reason is required. +- Admin can ban (temporary deactivate) anu registered user, except other + admins. Deactivation reason and activation time should be provided. + User registration and authentication ------------------------------------ @@ -58,6 +69,8 @@ User registration and authentication - Deactivated users cannot log in and mainly acts as anonymous users. - Deactivated users will receive a link to request the account restore from site admins. +- Banned users (temporary deactivated) should see the ban timer on login + atempt. Connections ----------- From d436b855e11c3c9d305a232521bd6c584e693bbf Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Wed, 29 Nov 2023 03:26:31 +0200 Subject: [PATCH 08/10] Add force logout function description --- index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.rst b/index.rst index 87183ad..7b9b70f 100644 --- a/index.rst +++ b/index.rst @@ -71,6 +71,8 @@ User registration and authentication site admins. - Banned users (temporary deactivated) should see the ban timer on login atempt. +- Authenticated users will be logout after being inactive for certain time. +- Admins should not be logout, regardless of activity. Connections ----------- From 555d183aefef9de76580e8a55aef9387ed0c9440 Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Wed, 29 Nov 2023 14:00:52 +0200 Subject: [PATCH 09/10] Add direct messages section --- index.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/index.rst b/index.rst index 7b9b70f..47eecdf 100644 --- a/index.rst +++ b/index.rst @@ -107,3 +107,9 @@ Notifications - Notification should be available from any place of the site. - When user uploads a new image, a notification is sent to all their connections. + +Direct messages +--------------- + +- Authenticated users can send direct messages to each other, unless they + aren't blocked by a message recepient. From bb5b991f8b033628ef15f241fef3044c943b2e29 Mon Sep 17 00:00:00 2001 From: Serhii Horodilov Date: Wed, 29 Nov 2023 14:02:45 +0200 Subject: [PATCH 10/10] Add REST API section --- index.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/index.rst b/index.rst index 47eecdf..d5b2360 100644 --- a/index.rst +++ b/index.rst @@ -113,3 +113,9 @@ Direct messages - Authenticated users can send direct messages to each other, unless they aren't blocked by a message recepient. + +API +--- + +- Project will implement REST API to provide **all** its functionality via + API endpoints.