Zwizzer is a web app that will allow users to post microblogs, chat with friend, like other users' posts... Users can register and login. Once they're logged in, they can view their own posts or their friends' posts. They can follow and unfollow friends.
The application will store Users, Posts, Messages, Chats.
- in future development, a user might has follower list by embedding
An Example User:
{
firstName: "Zander",
lastName: "Chen",
username: "zc1212",
email: "[email protected]",
password: "hashed password",
profilePic: "/images/profilePic.png",
coverPhoto: "aPuppy.png",
likes: "post ref",
retweets: "post ref",
following: "user ref",
followers: "user ref"
}
(See src/schemas/User.mjs)
/home - home page of a user if logged in
/chat - page for showing direct message with another user
/profile - page for a user's profile
- as non-registered user, I can register a new account with Zwizzer
- as a user, I can log in to Zwizzer
- as a user, I can post a new blog
- as a user, I can view other users' post
- as a user, I can add friends
- as a user, I can send direct messages
- as a user, I can upload and change my profile picture
- (5 points) Synchronous Chat
- I'm going to use Socket.IO for synchronous chat between users
- (3 points) Pug
- use Pug template engine to allow logics when rendering templates
- (2 points) cropper.js
- use cropper.js to crop user's profile image and/or cover image
- (2 points) multer.js
- use multer.js, a node.js middleware, to handle multipart/form-data when users try to upload their profile image/cover photo
(TODO: will add to this later on if I use any)