/Epitomize

A platform for communicating ideas and information

Primary LanguageJavaScript

Epitomize

A platform for communicating ideas and information.

Introduction

This project will be a full-stack website for users to publish and view posts. The goal is to provide the users with a platform for communicating ideas and information with other users. The users can assign tags to these posts and can later view all posts of a tag. The posts can be searched as well.

The users can view the list of other users and can follow/unfollow them to view the posts of those users. User can also view the profile of other users. Users receive notifications when they are followed by other users, or the user they are following posts a post or when a user likes their post.

Deliverables and Links

Endpoint (deployed): https://epitomize.me

Project Members

Backend:

  1. Ankit Anil Kulkarni

  2. Sagar Piyush Parikh

Frontend:

  1. Sanika Avinash Mathapati

  2. Nayan Jain

Tech Stack

  1. Frontend: React
  2. Backend: Go

Demo Video Functionality

DemoEpitomize.mp4

Features

User:

Users have the ability to create posts. Users also have the ability to view, and react on posts of other users.

  1. Register User - User can register to the application by providing the details in the form.

  2. Login User - User can use the emailid and password to login into the application.

  3. Logout User - Logged-in user can logout from the application and will be taken to the Login screen again.

  4. Follow Another User - User can view other registered users of the application and follow them to see their posts.

  5. View Other User Profile - User can view other registered users of the application and view their profile.

  6. View Own Profile - User can view their own profile information along with the profile image.

Post:

Each post is made of multiple components - a title, a short summary, the content, the upload date, and a tag associated with it. A post may contain pictures and other posts associated with it.

  1. View List of Posts - The user can view the list of their own posts, posts of users they follow, or posts of recommended tags.

  2. Create a new Post - The user can create a new post by adding a title, summary, image, tags, type, and content.

  3. Delete a Post - The user can delete a post.

  4. View a Single Post - The user can click on a post and view the whole post.

  5. Edit a Post - The user can edit the title, image, summary, and content of their posts.

  6. Like a Post - The user can like the post of other users.

  7. Unlike a Post - The user can unlike the post of other users

  8. View the number of Likes of a Post - The number of likes of the post are visible as well.

Search:

The posts appear on a user's dashboard. They can be filtered based on features like - uploaded date, tags, users, etc.

Draft:

The user can create a draft while creating a post and can later publish it to his feed or delete it.

  1. Create a Draft - The user can create a draft while creating a new post.

  2. View a Draft - The user can view a draft and its content.

  3. Delete a Draft - The user can delete a draft.

  4. View all Drafts - The user can view all the drafts.

  5. Publish a Draft - The user can convert the draft to a post.

Tags:

The user has the option to view posts of a tag and has the option to add recommended tags to his profile to view posts related to those

Notifications:

The user gets notified when another user likes their post, follows them or the user that they follow posts a new post.

  1. View all Notifications - The user can view all their notifications.

  2. Mark a Notification Read - The user can mark a single notification read.

  3. Mark all Notifications Read - The user can mark all his notifications read.

  4. Delete a Notification - The user can delete a notification.

Resources

Go starter kit credits - https://github.com/pilinux/gorest

Frontend Test Cases:

CypressTest.mp4

Backend Test Cases:

Backend_TestCases.mp4