$ git clone https://github.com/tushartiwari7/social.git
$ cd social
$ npm install
$ npm start
- Authentication (Login, Signup) Pages
- Home Page
- Explore Page
- Bookmarks Page
- Profile Page
- Single Tweet Page
- Connections - Followers/Followings page
- Authentication using JWT along with form validation for Login and Signup Pages.
- User can perform CRUD operations on his own Tweets and Comments.
- JPG/PNG Images less than 2MB can be attached with Tweets.
- User can like or unlike any Tweet.
- User can add or remove post from bookmarks.
- Home Page where user can see their tweets and the tweets of friends followed by user.
- Explore Page where all the posts will be visible.
- Sort the Tweets by either Trending, Latest or Oldest on Home, Explore and Profile Page.
- Bookmarks Page where all the posts bookmarked by user will be visible.
- Profile Page where user can edit their profile. It contains details like Avatar, Bio, Location, Followers, Followings and Portfolio URL.
- Persist User State on reload - Login once and it's enough.
- User can follow or unfollow other users from Profile Page, Suggestions, Followers & Followings Page.
- User can view the Profile, Followers/Followings of any user.
- Search Users by their First Name/ Last Name.
- Suggestions with Follow Switch on all pages.
- User can view all the comments of the post on the Individual Tweet Page.
- User can comment on Tweet, some other comment's or comment on comment and so on.
- Loader is shown while the Data is fetched, it can be Tweets, Comments etc.
- Alerts in the app to notify the users about success/failure operations.
- All the screens are Responsive.
- Frontend: React + TypeScript
- State Management: Redux Toolkit
- Design Library: Ant Design
- Database Management: MongoDB
- Backend: Node, ExpressJS
- Image Storage: Cloudinary
- Auto Formatter: Prettier
- IDE: VS Code