# Network Specification ocelot.social is free and open-source social network code that connects information to action and promotes positive local and global change in all areas of life. * **Social**: Interact with other people not just by commenting their posts, but by providing **Pro & Contra** arguments, give a **Versus** or ask them by integrated **Chat** or **Let's Talk** * **Knowledge**: Read articles about interesting topics and find related posts in the **More Info** tab or by **Filtering** based on **Categories** and **Tagging** or by using the **Fulltext Search**. * **Action**: Don't just read about how to make the world a better place, but come into **Action** by following provided suggestions on the **Action** tab provided by other people or **Organisations**. ## Features The following features will be implemented. This gets done in three steps: 1. First we will implement a basic feature set and provide a test system to test the basic network functionality. 2. In a second step we will make our prototype publicly available with an advanced feature set including the technology and organizational structure to drive a bigger public social network. 3. In a third step all the remaining features will be implemented to build the full product. The implemented features can be found [here](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/e2e) ### User Account * Sign-up * Agree to Data Privacy Statement * Agree to Terms of Service * Login * Logoff * Change User Name * Change Email Address * Change Password * Delete Account * Download User's Content * GDPR-Information about stored Content * Choosing Interface Language \(e.g. German / English / French\) * Persistent Links ### User Profile * Upload and Change Avatar * Upload and Change Profile Picture * Edit Social Media Accounts * Edit Locale information * Show and delete Bookmarks \(later\) * Show Posts of a specific User * Show Comments of a specific User ### Dashboard * Show Link to own Profile * Show Friends Widget * Show Favorites Widget * Show Get Friends Widget * Show popular Hashtags Widget * Show Mini-Statistics Widget \(all time\) * Show Chatrooms Widget * Show List of Let's Talk requests with online status of requesting people ### Posts * Creating Posts * Persistent Links * Upload Teaser Picture for Post * Upload additional Pictures * Editing Title and Content * Allow embedded Conten \(Videos, Sound, ...\) * Choosing a Category * Adding Tags * Choosing Language \(e.g. German / English / French\) * Choosing Visibility \(Public / Friends / Private\) * Shout Button for Posts * Bookmark Posts \(later\) * Optionally provide Let's Talk Feature * Optionally provide Commenting Feature ### Comments * Creating Comments * Deleting Comments * Editing Comments * Upvote comments of others ### Notifications * User @-mentionings * Notify authors for comments * Administrative notifications to all users ### Contribution List * Show Posts by Tiles * Show Posts as List * Filter by Category \(Health and Wellbeing, Global Peace & Non-Violence, ...\) * Filter by Mood \(Funny, Happy, Surprised, Cry, Angry, ...\) * Filter by Source \(Connections, Following, Individuals, Non-Profits, ...\) * Filter by Posts & Tools \(Post, Events, CanDos, ...\) * Filter by Format Type \(Text, Pictures, Video, ...\) * Extended Filter \(Continent, Country, Language, ...\) * Sort Posts by Date * Sort Posts by Shouts * Sort Posts by most Comments * Sort Posts by Emoji-Count \(all Types\) ### Blacklist * Blacklist Users * Blacklist specific Terms * Blacklist Tags * Switch on/off Adult Content ### Search * Search for Categories * Search for Tags * Fulltext Search ### CanDos * Creating CanDos * Editing Title and Content * Choosing a Category * Adding Tags * Choosing Language \(e.g. German / English / French\) * Choosing Visibility \(Public / Friends / Private\) * Choosing Difficulty * Editing Why - why should you do this * Editing Usefulness - what is it good for ### Versus \(interaction on existing Post\) * Create / edit / delete Versus ### Jobs * Create, edit and delete Jobs by an User * Handle Jobs as Part of Projects * Handle Jobs done by Organizations ### Projects * Create, edit and delete Projects * Edit Title and Description for the Project * Set Project Type * Set and Edit Timeline for the Project * Add Media to the Project * Chat about the Project ### Pro & Contra * Create Pro and Con \(2-row\) * Add Arguments on Pro or Con Side * Rate up Arguments * Add Tags * Attach Media ### Votes * Create Votes \(Surveys with two or more Choices\) * Add Title and Description * Let Users vote * Add Tags ### Bestlist * Create Bestlist * Create Votes \(Surveys\) * Add Title and Description * Add Tags * Let Users vote for Best Item * Set Settings \(allow Uploads, allow Links, ...\) ### Events * Create Events * Add Title and Description * Choose Date and Location * Add Tags ### More Info Shows automatically related information for existing post. * Show related Posts * Show Pros and Cons * Show Bestlist * Show Votes * Link to corresponding Chatroom ### Take Action Shows automatically related actions for existing post. * Show related Organisations * Show related CanDos * Show related Projects * Show related Jobs * Show related Events * Show Map ### Badges System * Importing Badge Information \(CSV\) * Showing Badges * Badge Administration by Admins * Choosing Badges to display by User ### Chat * Basic 1:1 Chat functionality ### Let's Talk * Request Let's talk with Author of Post * Requestor can request private or public Let's Talk * Requestor can choose the Chat format \(Video, Audio, Text\) * Interact with interested People 1:1 * Approve request from Requestor ### Organizations * Propose Organizations by users * Set Name and Details * Set Homepage * Set Region * Set Topic * Commit organizations by HC-Org-Team * Panel for Organisation Handling by themselfes * Choose/Mark Users as authorized to manage an Organization ### Moderation * Report Button for users for doubtful Content * Moderator Panel * List of reported Content \(later replaced by User-Moderation\) * Mark verified Users as Moderators * Show Posts to be moderated highlighted to User-Moderators * Statistics about kinds of reported Content by Time * Statistics about Decisions in Moderation ### Administration * Provide Admin-Interface to send Users Invite Code * Static Pages for Data Privacy Statement ... * Create, edit and delete Announcements * Pin a post to inform users ### Invitation * Allow Users to invite others by Email * Allow Users to register with Invite Code * Double-opt-in by Email ### Internationalization * Frontend UI * Backend Error Messages ### Federation * Provide Server-Server ActivityPub-API * Provide User-Server Activitypub-API * Receiving public addressed Article and Note Objects * Receiving Like and Follow Activities * Receiving Undo and Delete Activities for Articles and Notes * Serving Webfinger records and Actor Objects * Serving Followers, Following and Outbox collections