Giter Site home page Giter Site logo

finalproject-fe's Introduction

| Documentation | Project description - a brief description of the purpose and main features User Story Instructions on how to set up and run the application locally Third-party libraries used in the project


*The Project Title: MyCompany WebApp - Social Platform

*The Project Description:

  • [] All about my company: my cooperator and customer can know everything what my company do.
  • [] Startup community - social networking: opportunity for young startup and SMEs.

*User Story:

**Background:

  • [] MyCompany is webapp of organization about IT solution and startup. Client can get information, search and contact us.
  • [] It is also a blog that allows people to join and create their profile, following/ follower and others.

***Social Platform:

User story:

  • [] Site - Home:
    Get all information of company.

  • [] Startup Community-blog: Create profile, make friend, share post and comment, join group.

Authentication:

  • [] As a user, I am able to log in and log out my account with email and password after register a new account.

User:

  • [] As a user, I am able to create my account by providing basic information.
  • [] As a user, I am able to get list of users with pagination for add friend.
  • [] As a user, I am able to see a specific user's profile given a user ID.
  • [] As a user, I am able to get all my profile info.
  • [] As a user, I am able to update my profile

Post:

  • [] As a user, I am able to share my thoughts and interests by creating content (text, images, or video).
  • [] As a user, I am able to get comments of a post.
  • [] As a user, I am able to get detail a single post.
  • [] As a user, I am able to edit and delete my posts.
  • [] As a user, I am able to view my own posts as well as other users content.

Comment:

  • [] As a user, I am able to get a list of comments of a post.
  • [] As a user, I am able to interact with content by commenting.
  • [] As a user, I am able to edit or delete comments that I created.

Friend/follow:

  • [] As a user, I am able to get the list of received pending requests.
  • [] As a user, I am able to get the list of sent pending requests.
  • [] As a user, I am able to see a list of people that I follow as well as my followers.
  • [] As a user, I am able to send a friend request to others.
  • [] As a user, I am able to accept/decline a friend request from others.
  • [] As a user, I am able to cancel a friend request that I sent.
  • [] As a user, I am able to remove a friend.

Reaction:

  • [] As a user, I am able to create a like/dislike on posts OR comments.

Group:

  • [] As a user, I am able to create a new group by providing a group name, group description, and selecting a category or interest that the group will be based on.
  • [] As a user, I am able to search for and join groups by browsing categories or interests, or by searching for a specific group name or keyword.
  • [] As a group member, I am able to post in a group.
  • [] As a group member, I am able to comment and reaction on a post in the group.
  • [] As a group member, I am able to see the posts in a group on the group page.
  • [] As a group member, I am able to join existing group.
  • [] As a group member, I am able to leave a group.

*API endpoints:

Site APIs:

  • @route GET /
  • @description information of company
  • @body
  • @access Public

Auth APIs:

  • @route POST /auth/login
  • @description user log in with username and password
  • @body {email, passsword}
  • @access Public

User APIs:

  • @route GET /users/page=1?&limit=10

  • @description Get list of users with pagination

  • @body

  • @access Login required

  • @route GET /users/me

  • @description Get current user info

  • @body

  • @access Login required

  • @route GET /users/:id

  • @description Get user detail info by Id

  • @body

  • @access Login required

  • @route POST /users

  • @description Register new user

  • @body {name, email, password}

  • @access Public

  • @route PUT /users/:id

  • @description Update user profile

  • @body {name, avatar, aboutMe, city, country, company, fbLink, instagramLink, linkedInLink, twitterLink, youtubeLink}

  • @access Login required

Post APIs:

  • @route GET /posts/user/userId?page=1&limit=10

  • @description Get all posts a user can see with pagination

  • @body

  • @access Login required

  • @route GET /posts/:id/comments

  • @description Get comments of a post

  • @body

  • @access Login required

  • @route GET /posts/:id

  • @description Get a single post

  • @body

  • @access Login required

  • @route POST /posts

  • @description Create a new post

  • @body {content, image}

  • @access Login required

  • @route PUT /posts/:id

  • @description Update a post

  • @body {content, image}

  • @access Login required

  • @route DELETE /posts/:id

  • @description Delete a post

  • @body

  • @access Login required

Comment APIs:

  • @route GET /comments/:id

  • @description Get details of a comment

  • @body

  • @access Login required

  • @route POST /comments

  • @description Create a new comment

  • @body {content, postId}

  • @access Login required

  • @route PUT /comment/:id

  • @description Update a comment

  • @body

  • @access Login required

  • @route DELETE comments/:id

  • @description Delete a comment

  • @body

  • @access Login required

Friend APIs:

  • @route GET /friends/requests/incoming

  • @description Get the list of received pending requests

  • @body

  • @access Login required

  • @route GET /friends/requests/outgoing

  • @description Get the list of sent pending requests

  • @body

  • @access Login required

  • @route GET /friends/

  • @description Get the list of friends

  • @body

  • @access Login required

  • @route POST /friends/requests

  • @description Send a friend request

  • @body {to: User ID}

  • @access Login required

  • @route PUT /friends/requests/:userId

  • @description Accept/Reject a received pending requests

  • @body {status: 'accepted' or 'declined'}

  • @access Login required

  • @route DELETE /friends/requests/:userId

  • @description cancel a friend request

  • @body

  • @access Login required

  • @route DELETE /friends/:userId

  • @description remove a friend

  • @body

  • @access Login required

Reaction APIs: posts OR comments

  • @route POST /reactions
  • @description Create a like/dislike
  • @body ["like", "dislike"]
  • @access Login required

Group:

  • @route POST/group

  • @description create a new group

  • @body (userId, name, description, categories, interests..)

  • @access login required

  • @route GET/group

  • @description get list of group & interest & search

  • @body (userId, groupId, name, categories, interests)

  • @access login required

  • @route PUT/group

  • @description join a group

  • @body (userId, groupId)

  • @access login required

  • @route DELETE/group

  • @description leave a group

  • @body (userId, groupId)

  • @access login required

  • @route GET/group

  • @description get single group

  • @body (groupId)

  • @access login required

  • @route POST/group/posts

  • @description create a new post in the group

  • @body (userId, groupId, content)

  • @access login required

  • @route GET/group/posts

  • @description get list of posts in group

  • @body (userId, groupId, postId)

  • @access login required

* Diagram Relation:

User: name: String, required email: String, required password: String, required avatarUrl: String aboutMe: String city: String country: String company: String jobTitle: String facebookLink: String instagramLink: String linkedinLink: String twitterLink: String isDeleted: Boolean friendCount: Number postCount: Number

Post: content: String, required image: String author: Schema.Types.ObjectId, required isDeleted: Boolean commentCount: Number reactions: enum: ["like", "dislike"] like: Number dislike: Number

Comment: content: String, required author: Schema.ObjectId, required post: Schema.ObjectId, required reactions: enum: ["like", "dislike"] like: Number dislike: Number

Friend: from: Schema.ObjectId, required to: Schema.ObjectId, required status: String, enum: ["pending", "accepted", "declared"]

Reaction: author: Schema.ObjectId, required, targetType: String, required, enum: ["Post", "Comment"] targetId: Schema.ObjectId, required emoji: String, required, enum: ["like", "dislike"]

Group: creator: Schema.Types.ObjectId, required name: String, required description: String, required interests: String, required members: Schema.Types.ObjectId postsByGroupId: Schema.Types.ObjectId, postGroupCount: Number isDeleted: Boolean

finalproject-fe's People

Contributors

thuphan27379 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.