GithubHelp home page GithubHelp logo

sukhiboi / desk-demons-postmit Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 3.0 937 KB

Postmit is a Microblogging site, which makes it easier to communicate with audiences quickly rather than writing pages of text, it allows for quick and conversational connections with other peoples.

Shell 0.91% JavaScript 86.88% HTML 6.86% CSS 5.34%

desk-demons-postmit's Introduction

sukhiboi

desk-demons-postmit's People

Contributors

imvaishu avatar naveen-kumar-vadla avatar nooranasrin avatar sukhiboi avatar

Watchers

 avatar  avatar

desk-demons-postmit's Issues

Mention a User

As a user
I want to mention user
So that I can i can get other user focus towards them

Buisness Context

Problem: User want to mention another user in the post
Solution: All user to mention another user with'@' and their username

Acceptance Criteria

  • Criteria 1

  • Given the user is writing a post

  • When the user type a username with '@'

  • Then the username should become link to their profile

  • Criteria 2

  • Given the user is reading a post

  • When the user click on mention

  • Then the user should be redirected to their profile

  • Criteria 3

  • Given the user is writing a post

  • When the user type a word which is not a username with '@'

  • Then the that mention should be a simple word with '@'

Hashtag

As a user
I want to to add a hashtag in my post
So that I can relate my post to specific topic

Buisness Context

Problem: User want to show that his/her post is related to a topic
Solution: Allow user to add hashtag in the post

Acceptance Criteria

  • Criteria 1

  • Given user is writing a post

  • When user added a keyword with hastag( # )

  • Then the hashtag should be created and the post should be linked with that hastag

  • Criteria 2

  • Given user is writing a post

  • When user added a keyword with hastag( # )

  • Then the post should be linked to that hashtag ( means it's hastag is available )

  • Criteria 3

  • Given user is on the search bar

  • When user type a keyword with hastag( # )

  • Then the user should get suggestion with matching hashtags

  • Criteria 4

  • Given user is on the search bar

  • When user type a keyword with hastag( # ) and clicked on one of the suggestions

  • Then the user should be redirected to that hastag page with all the latest post with that hastag

Expand a post

As a user
I want to expand a post
So that I can see who all liked the posts

Buisness Context

Problem: User is not able to see who all like the posts
Solution: Allow user to expand the post by clicking on the post

In Scope

  • Showing popup with all the user who liked that post

Acceptance Criteria

  • Criteria 1

  • Given the user is on a post

  • When the user click on the post

  • Then the post should the expand

  • Criteria 2

  • Given the user is on a expanded post

  • When the user click on the like count

  • Then the user will get a popup with all the users who liked that post

Create the schema

Create schema for different entities of the app.

  • Create the schema

Update Directory Structure

  • Move all source code ( domain specific files ) to src directory

  • Rename the files with consistent naming conventions ( Prefer camelCase )

  • Rename public/css to public/stylesheets

  • Rename public/js to public/javascripts

  • Rename pug components and files

  • Update directory structure in wiki

( Only rename if you think it's required, follow the naming convention )

Bookmarks

As a user
I want to to add, view and delete my bookmarks
So that I can keep track of posts that i like

Buisness Context

Problem: User want to store the posts that he/she like
Solution: Allow user to bookmark the posts

In Scope

  • Creating a page for bookmarks
  • Highlighting the bookmark icon when the posts is bookmarked

Acceptance Criteria

  • Criteria 1

  • Given that user is on normal post

  • When user click on the bookmark icon

  • Then the post should be seen in the bookmark page, and highlight the icon

  • Criteria 2

  • Given that user is on a bookmarked post

  • When user click on the bookmark icon

  • Then the post should be removed the bookmark page, and un-highlight the icon

  • Criteria 3

  • Given that user is on the sidebar

  • When user click on the bookmark page

  • Then the user should be redirected to the bookmark page and view his/her bookmarked posts

Refactor SQL Queries

  • Try to get the required data from databse using a single query

  • Convert the queries to transactions where needed.

Setup Dev environment

  • Add a CI tool

  • Setup the project skeleton

  • Add pre-commit hook

  • Create a project wall

  • ESlint

  • Link heroku

Follow / Unfollow a user

As a user
I want to follow or unfollow other users
So that I can see their posts on my feed

Buisness Context

Problem: User should be able follow or unfollow other users
Solution: Allow user to follow / unfollow other users and showing thier post on user feed

In Scope

  • Should be able to see follow or unfollow option on other users proile
  • Should be able to see the follower and following count on the user profile
  • Should be able to see the posts from following ( the user which are being followed ) users
  • When user unfollows another user, thier posts should not come on current user feed

Dependencies

#15

Acceptance Criteria

  • Criteria 1

  • Given that user is on other unfollowed user's profile

  • When the user click on follow button

  • Then the unfollow button should be shown

  • Criteria 2

  • Given that user is on other followed ( whom the user follow ) user's profile

  • When the user click on unfollow button

  • Then the follow button should be shown

Update tests

  • Create test database
  • Use test database to test handlers
  • Write Separate tests for each behaviour of methods

Update Routes

  • Rename the routes with proper naming conventions

  • Check whether expected inforamtion is there in request or not ( hasFields )

Create User Flow

Create a simple user flow which will show how the user will use the app.

  • Create a user flow

  • Add the user flow in the wiki

Link to the User Journey

Search User

As an authorized user
I want to search for other users
So that I can visit their profile

Buisness Context

Problem: I don't know about other users
Solution: Provide a search bar to search users

In Scope

  • Showing suggestion while typing
  • Username must be searched with @ prefix
  • User should not be able to edit searched user profile

Out of Scope

  • Follow / Unfollow a user

Acceptance Criteria

  • Criteria 1

  • Given I'm at the searchbar

  • When I search for a user

  • Then I should get suggestions related to that username

  • Criteria 2

  • Given I searched for a user from searchbar

  • When I click on a user from search results

  • Then I should be able to see that user's profile

  • Criteria 3

  • Given I searched for my username from searchbar

  • When I click on my username from the search results

  • Then I should be redirected to my profile

View Post

As a user
I want to see the post
So that I can read the messages posted by other users

Business Context

Problem: The user should see all the posts posted on the app
Solution: Provide a page with all the posts

Out Scope

  • Creating a post

Acceptance Criteria

  • Criteria 1
  • Given the app URL
  • When user hit the app url
  • Then user should get a page with all the posts

Update Handlers

  • Handle error in the handlers for both GET and POST requests

  • Rename the handlers if needed

Create a Configuration file

It should contain the following things

  • Github authentication details

  • database path

  • server port

  • cookies details

View Profile

As a user
I want to see my profile
So that I can read the posts that I posted

Business Context

Problem: The user should see his/her profile and his/her posts
Solution: Provide a page with user's profile

Out Scope

  • Editing profile
  • Showing following / follower count

Acceptance Criteria

  • Criteria 1
  • Given the user is at homepage
  • When user click on the profile link
  • Then user should see his/her profile and the posts posted by him/her

Repost an existing post

As a user
I want to repost an existing post
So that I can convey that message to my followers

Buisness Context

Problem: User wants to repost an existing post
Solution: Allow the user to repost an existing post

In Scope

  • Giving an option to repost
  • Highlighting the repost icon when the post is reposted
  • When the user is on his own reposted post there should be a message of you reposted this post
  • When the user is on other users reposted post there should be a message with username reposted this post

Dependencies

#10

Acceptance Criteria

  • Criteria 1

  • Given the user is on a post

  • When he/she select repost option

  • Then that post should be reposted and appear in his profile and feed

  • Criteria 2

  • Given the user is on a post

  • When he/she select repost option

  • Then the count should increase and the icon should be highlighted

  • Criteria 3

  • Given the user is on a reposted post

  • When he/she select repost option

  • Then the count should decrease and the icon should be unhighlighted

Setup database

Setup a common database so that the whole team can contribute to the project without worrying about the database connectivity.

  • Setup a test database to test the app

  • Setup a production database for the production use

Create an informative wiki

Create a informative wiki so that developers and end user can understand the project.

  • Create guidelines for developers so that they know how to contribute to the project

  • Add description about our app

  • Create a list of all the contributors so that the users know whom to consult

Edit user profile

As an authorized user
I want to view my profile
So that I can update my profile if required

Buisness Context

Problem: I need to update my profile, so that I can share my latest details
Solution: Give me a page where I can review all my details and update them if required

In Scope

  • Allowing user to edit profile, when user click on edit profile button
  • Saving the updated user details when user click on the save button
  • Not saving the details when user press the cancel button
  • Asking confirmation for not saving the changes ( when user clicked the cancel button )
  • Showing edit action on the feilds which are allowed to be edited
  • Showing the latest posts
  • Showing the latest posts where the user commented
  • Showing the latest liked posts
  • Showing the count of followers
  • Showing the count of people whom the user follows ( .i.e following )

Dependencies

#13

Acceptance Criteria

  • Criteria 1

  • Given I'm at the profile page

  • When I update my name

  • Then my name should be updated

  • Criteria 2

  • Given I'm at the profile page

  • When I update my username

  • Then my username should be updated

  • Criteria 3

  • Given I'm at the profile page

  • When I try to update my username to an existing username

  • Then I should get an error message saying "This username is already taken"

  • Criteria 4

  • Given I'm at the profile page

  • When I update my bio

  • Then my bio should be updated

  • Criteria 5

  • Given I'm at the profile page

  • When I update my date of birth

  • Then the date of birth of the user should be updated

Update models

  • rename app model to user model
  • create a static method in user model and a middleware to add user to request
  • create sessions to manage users
  • rename the domain specific methods in datastore model

Respond to a Post

As a user
I want to repspond to a post
So that I can share my opinion about the post

Buisness Context

Problem: User can't share their opnions about a post
Solution: Allow user to respond to a post

In scope

  • Showing the reply on user feed
  • Showing the reply on the post

Dependencies

#16

Acceptance Criteria

  • Criteria 1

  • Given the user is on a post

  • When user click on the respond icon

  • Then user should be prompted to write a reply and post it, after which the reply count should increment.

  • Criteria 2

  • Given the user is on a post

  • When user type a reply which is more than 180 characters long

  • Then the reply button should be disabled

  • Criteria 3

  • Given the user is on a post

  • When user didn’t type anything in reply

  • Then the reply button should be disabled

Github Authentication

As a user
I want to login in to the app
So that I can use the app and it’s features

Buisness Context

Problem: Only one user can use the app
Solution: Authorize users by their github identification to use and create an account on the app

Acceptance Criteria

  • Criteria 1

  • Given an unauthorized user is at the login page

  • When the user click the login button

  • Then the user should redirected to github authorization page, after successful authorization, user should be asked for extra details ( username, name, dob and bio ). When user click on the continue button user will be redirected to the homepage. ( refer login mockups )

  • Criteria 2

  • Given an unauthorized user is at the login page

  • When the user click the login button

  • Then the user should redirected to github authorize page, if authorization failed, user should be redirected to the Login page

  • Criteria 3

  • Given an authorized user is at the login page

  • When the user click the login button

  • Then the user should be redirected to Github login page, after successful login the user should be redirected to Home page

Post and Replies

As a user
I want to see all posts to which I replied
So that I can see my replies

Buisness Context

Problem: User wants to see all the replies to different posts
Solution: Give user a tab in the profile so that he/she can view their replies

Dependencies

#18

Acceptance Criteria

  • Criteria 1
  • Given user replied to a post
  • When user go to his/her profile page
  • Then he/she should see all the replies made by them

Refactor Frontend

  • Extract a common functions to make a popup

  • Move all the html generation function to a separate file

  • Merge followers.pug and userList.pug and make a component

  • Rename the pug files and components if needed

Like/Unlike Post

As a user
I want to like or unlike a post
So that I can show my interest in that post

Buisness Context

Problem: I want to tell others that I like or unlike this post
Solution: Allow me to like or unlike a post

In Scope

  • Show the like count

Dependencies

#16

Acceptance Criteria

  • Criteria 1

  • Given I'm viewing a post that I like

  • When I click on the like button

  • Then the like count should increse, icon should be get highlighted and it should be visible in the likes tab in user profile

  • Criteria 2

  • Given I'm viewing a post that I once relevant but not now

  • When I click on the like button

  • Then the like count should decrease, icon should be get unhighlighted and it should remove from the likes tab in user profile

Create and Post a message

As a user
I want to write a message and post it
So that I can connect with people and share my thoughts

Buisness Context

Problem: User want to share message/thoughts with other people
Solution: Let user type a message and post it to the app

In Scope

  • Remaining character count of the message should be visible

Acceptance Criteria

  • Criteria 1

  • Given the user is at the home page

  • When user type a message and click on the post button

  • Then that message should be posted to user's feed

  • Criteria 2

  • Given the user is at the home page

  • When user type a message which is more than 180 characters long

  • Then the post button should be disabled

  • Criteria 3

  • Given the user is at the home page

  • When user didn’t type anything

  • Then the post button should be disabled

Delete a post

As a user
I want to delete my post
So that I prevent people to see an inappropriate post

Buisness Context

Problem: I want to remove my post from the app
Solution: Allow me to delete my post

In Scope

  • User can only delete their own posts
  • Showing a promt with message "Are you sure you want to delete the post?" with "Yes" and "No" buttons

Dependencies

#10

Acceptance Criteria

  • Criteria 1

  • Given I am viewing my post that I want to delete

  • When I click on the delete button

  • Then I should be asked for confirming my action, if I approve then the post should get deleted

  • Criteria 2

  • Given I am viewing my post that I want to delete

  • When I click on the delete button

  • Then I should be asked for confirming my action, if I decline then the post shouldn't get affected

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.