Welcome to the Blog Application! This full-stack application allows users to create accounts, post blogs, like and comment on blogs, follow friends, explore popular and recent blogs, and perform both full-text and fuzzy search. The application is built using Node.js, React.js, and Express, with additional features such as sentiment analysis and media uploads.
- Sign Up and Log In: Users can create an account using their email, name, and phone number. The application supports OTP authentication for both signup and login.
- Profile Management: Users can update their profile details and manage their account settings.
- Create Blogs: Users can write and post blogs with the option to upload images and PDFs.
- Edit and Delete Blogs: Users can edit or delete their own blogs.
- Rich Text Editor: The blog editor supports rich text formatting for better content presentation.
- Like Blogs: Users can like or unlike blogs. Each blog card displays whether the logged-in user has already liked the blog.
- Comment on Blogs: Users can add comments to blogs, fostering discussions and interactions.
- Follow Friends: Users can follow their friends and view their friends' activities.
- Popular and Recent Blogs: Users can explore the most popular and recent blogs on the platform.
- Full-Text Search: Users can search for blogs using keywords.
- Fuzzy Search: Users can search for other users using a fuzzy search algorithm to handle typos and partial matches.
- Media Uploads: Users can upload images and PDFs along with their blogs.
- Sentiment Analysis: The application performs sentiment analysis on blog posts to gauge the overall sentiment of the content.
- Age Restriction and User Consent : The application confirms if you are willing to visit the blog if it contains any derogatory content, if the user age is below 18 he/she wouldnt be allowed to read the blog
- Node.js: JavaScript runtime for building the server-side application.
- Express: Web framework for building the API and handling requests.
- Prisma: ORM for managing the database and performing CRUD operations.
- React.js: JavaScript library for building the user interface.
- Material-UI: Component library for styling and theming the application.
- react-responsive-carousel: Library for creating responsive carousels.
- PostgreSQL : Supabase: Relational database for storing user data, blog posts, and interactions.
- sentiment: Library for performing sentiment analysis on blog posts.
- Node.js: Ensure Node.js is installed on your machine.
- PostgreSQL: Set up a PostgreSQL database.
-
Clone the Repository
git clone https://github.com/Veer-Parikh/Blogify.git cd Blogify -
Install Dependencies
cd client npm install cd .. cd server npm install
-
Environment Variables
- Create a
.envfile in the root directory and add the necessary environment variables.
DATABASE_URL=your-database-url JWT_SECRET=your-jwt-secret
- Create a
-
Run the Application
cd client npm run dev cd server npm start
















