Posts ===== Introduction ------------ This document describes the functionality of the Posts module, which focuses on content discovery, user engagement, and sharing. The module allows users to explore and interact with various types of content while maintaining privacy. Content Discovery ----------------- The Posts module provides users with the ability to discover and engage with content that aligns with their interests. ### Personalized Home Feed - Users are redirected to a personalized home feed upon login. - The feed displays content from connections and groups. ### Content Exploration - Users can explore posts from connections and groups. - Discovery is driven by user interests rather than personal data. - Users can explore profiles, hashtags, and trending topics. Content Sharing --------------- The module enables users to share different types of content, including text, images, and videos, while maintaining privacy and control. ### Content Upload - Depending on the media type, users can upload text or media files. - Supported media formats: images, videos (up to 5 minutes, max 2 GB). - All videos and images are compressed before upload. ### Caption and Hashtags - Users can provide captions and descriptions for their content. - Relevant hashtags can be added to categorize content. ### Content Engagement - Connections receive notifications about new content. - Users can like and comment on posts, promoting engagement. ### Comment Management - Users can edit and delete their comments. - Comments can include text and images. Privacy and Moderation ----------------------- The module emphasizes privacy and content moderation, ensuring a positive user experience and compliance with guidelines. ### Censorship and Viewpoints - The platform does not arbitrarily censor content based on viewpoints. - Content must adhere to legal and ethical standards. ### Moderation Guidelines - Transparent manual content moderation guidelines are established. - Ensures fair and unbiased approach to inappropriate content. ### Reporting Inappropriate Content - Users can report inappropriate content on their or others' posts. - Upholds community guidelines and maintains a safe environment. API Views and Endpoints ----------------------- This module offers a comprehensive suite of API views and endpoints catering to posts, comments, and user engagement functionalities. Post Management ~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/` - **Description:** Users can create, view, update, and delete their posts. Like and Unlike Posts ~~~~~~~~~~~~~~~~~~~~~ - **Endpoints:** - `/api/posts/{post_id}/like/` - `/api/posts/{post_id}/unlike/` - **Description:** Enables users to express their appreciation for a post or revoke it. Comment on Posts ~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/{post_id}/comment/` - **Description:** Users can add comments to posts. Update and Delete Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~ - **Endpoints:** - `/api/posts/comment/{comment_id}/update/` - `/api/posts/comment/{comment_id}/delete/` - **Description:** Users have the flexibility to modify or remove their comments. Manage Comment Images ~~~~~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/comment/{comment_id}/image/` - **Description:** Lets users augment their comments with images. Delete Comment Images ~~~~~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/comment/{comment_id}/images/{image_id}/delete/` - **Description:** Users can expunge images attached to their comments. Detailed Media Operations ~~~~~~~~~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/media//` - **Description:** Users can manipulate and erase media affiliated with a post. - **Methods:** - **GET:** Extract media of a particular post using its ID. - **PATCH:** Modify media partially. - **PUT:** Overwrite media content. - **DELETE:** Eliminate media. Add Media to Post ~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts//add-media/` - **Description:** Provides a conduit for users to append supplementary media to a post. - **Methods:** - **POST:** Integrate media to a post. .. note:: All media-related activities are orchestrated via the specific endpoint: `/api/posts/media/` Favorite Operations ~~~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts//favorite/` - **Description:** Facilitates users in earmarking a post as a favorite or retracting it. - **Methods:** - **POST:** Designate a post as favorite. - **DELETE:** Dislodge a post from favorites. List Favorite Posts ~~~~~~~~~~~~~~~~~~~ - **Endpoint:** `/api/posts/favorites/` - **Description:** Displays a compilation of all favorite posts. Conclusion ----------- The Posts module empowers users to explore, engage, and share content in a privacy-focused and engaging manner. By prioritizing user interests and implementing content moderation, the module contributes to a positive user experience and a vibrant community. .. toctree:: :maxdepth: 2 apps api services tasks tests