Not Twitter is like Twitter but simpler. You'll be able to make an account, post a tweet, delete your old posts and see what other people post.
The application will store Users and Tweets
- users can have many tweets
- posts can have text and/or images
An Example User:
{
username: "not_twitter_user",
hash: // a password hash,
posts: // an array of references to Post documents
name: "James"
}
An Example Tweet with Embedded Items:
{
user_id: // a reference to a User object
tweet: "I posted something!", //or null if user does not write text
createdAt: // timestamp
}
/feed - page for showing posts from all users ordered by time stamp
/profile - page for your profile information and all your previous posts
/post - page for creating a new Not Twitter post
/login - page for logging into your account
/signup - page for creating a new account
- As non-registered user, I can make a new account with the site.
- As a user, I can log in to the site.
- As a logged in user, I can make a new post.
- As a logged in user, I can view all of my previous posts.
- As a logged in user, I can delete one of my old posts.
- As a logged in user, I can see posts made by other people.
- (3 points) Integrate user authentication
- Use passport for user authentication
- And account has been made for testing
- (2 points) Use Heroku to deploy
- Heroku allows for the site to be accessible anytime without being hosted locally
- Allows many users can access it at once
- Learn MongoCLI to upload to Heroku github
- (2) Use MongoDB Atlas
- For storing collections of data
- Good for managing different user data
- Allows for easy linking to heroku
- (1) Add security for forms and account login
- Salt passwords to store on MongoDB
- Include form protection to prevent application from crashing
8 points total out of 8 required points
- https://www.freecodecamp.org/news/how-to-deploy-an-application-to-heroku/
- https://www.mongodb.com/developer/how-to/use-atlas-on-heroku/#get-your-atlas-cluster-connection-string
- https://stackoverflow.com/questions/38820251/how-is-req-isauthenticated-in-passport-js-implemented
- https://www.npmjs.com/package/passport