Text-Only Social Network

MongooseTypeScriptReactClerkMongoDBTailwindCSSNext.jsRadixUI

Saturday, March 2, 2024

Description:

A web application designed to promote writing by allowing users to create accounts and profiles, share text-only posts on a wall, and engage with others through likes, replies, and group interactions.

Home Page

Key Features:

  1. User Accounts and Profiles:
  2. Users can sign up and create a personalized profile.Profile pages display user information and posts.
  3. Text-Only Posts:
  4. Users can share text-only posts to a public wall.Posts are displayed in a timeline format for easy browsing.
  5. Engagement:
  6. Other users can like and reply to posts, fostering interaction and discussion.Notifications for likes and replies to keep users engaged.
  7. Groups:
  8. Users can create and join groups based on interests.Group pages display all posts shared within the group.Group interaction to build communities around common topics.

Technologies Used:

  • Frontend: React.js for building a dynamic user interface.
  • Backend: Node.js for handling server-side logic and API requests.
  • Database: MongoDB for storing user profiles, posts, and group data.
  • Authentication: Clerk for secure user authentication.
  • Styling: CSS-in-JS with styled-components for component-level styling.

Challenges and Solutions:

  • Scalability: Implemented efficient database indexing and pagination to handle a large number of posts and users.
  • User Engagement: Designed a notification system to keep users engaged with updates on likes and replies.
  • Security: Ensured secure user authentication and data protection with JWT and encryption.
Profile page

Future Enhancements:

  • Media Support: Plan to add support for image and video posts.
  • Advanced Search: Implement a search feature to find posts and groups more efficiently.
  • Mobile App: Develop a mobile application for enhanced accessibility.

For further details and to explore the code, visit GitHub Repo here or check out the live demo at website or Vercel Domain.