Thanks to visit codestin.com
Credit goes to github.com

Skip to content

The project included features such as user authentication, content management, real-time interaction (commenting), to enhance the overall functionality and usability of the blogging platform. Iam currently working on this project.

License

Notifications You must be signed in to change notification settings

3Sangeetha3/Writely

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✍️ Writely - Modern Blogging Platform

Writely Logo

wakatime

πŸ“ What is Writely?

Writely is a modern, feature-rich blogging platform that empowers users to create, publish, and interact with high-quality content. Built with a sleek UI and comprehensive text editing capabilities, Writely offers an immersive writing and reading experience. The platform combines powerful article management tools with social features to create a vibrant community of writers and readers.

Preview

Home Page Home Page

Home Page Continued Home Page (Continued)

Article Page Article Page

Sign In Page Sign In Page

Sign Up Page Sign Up Page

User Profile User Profile

User Profile Continued User Profile (Continued)

Settings Page Settings Page

✨ Key Features

πŸ“‘ Content Creation & Management

  • Rich Text Editor: Advanced editing with Jodit integration
  • Article Publishing: Support for tags and categories
  • Deletion Management: Article removal with confirmation flow

🎨 User Experience

  • Modern UI/UX: Elegant animations with AOS library
  • Responsive Design: Optimized for all device sizes
  • Loading Skeletons: Enhanced perceived performance
  • Theme Support: Toggle between dark and light modes

πŸ‘€ Profile & User Management

  • Custom Profiles: Personalized avatars and bio sections
  • Contribution Tracking: Article history with heatmap visualization
  • Writer Analytics: Author statistics (streaks, active periods)
  • Account Security: Email verification system

🀝 Social Interaction

  • Community Engagement: Comprehensive commenting system
  • Article Metrics: Read time, comment counts, and popularity tracking
  • Network Building: User following capabilities
  • Content Discovery: Explore trending and popular tags

πŸ–₯️ Content Display

  • Secure Rendering: Sanitized HTML with DOMPurify
  • Markdown Support: Write in markdown or rich text
  • Code Highlighting: Syntax highlighting for code blocks

πŸ› οΈ Tech Stack

Frontend

  • Core: React.js (v18.3.1), Vite (v5.3.1)
  • Routing: React Router v6 (v6.24.1)
  • State Management: React Query (v5.51.5), Valtio (v1.13.2)
  • Styling: Tailwind CSS (v3.4.13), MUI Components (v6.1.2), Emotion (v11.13.3)

Backend

  • Server: Node.js, Express
  • Database: MongoDB with Mongoose ODM
  • Authentication: JWT, Bcrypt
  • Media Storage: Cloudinary
  • Email: Nodemailer
  • File Handling: Multer
  • Scheduling: Node-cron

UI Components & Libraries

  • Rich Text: Jodit React (v5.2.5)
  • Icons: Lucide React (v0.477.0), React Icons (v5.2.1)
  • Animations: AOS (Animate On Scroll), Lottie React (v2.4.1), Typed.js (v2.1.0)
  • Form Handling: Formik (v2.4.6), Yup validation (v1.5.0)
  • Security: DOMPurify (v3.2.4)
  • Utilities: Axios (v1.7.2), Lodash-es (v4.17.21), Classnames (v2.5.1)

πŸš€ Getting Started

Prerequisites

  • Node.js (v14+)
  • npm or yarn
  • Git
  • MongoDB instance (local or Atlas)
  • Cloudinary account (for image uploads)
  • Gmail account (for email verification)

Frontend Setup

  1. Clone the repository
git clone https://github.com/your-username/Writely.git
cd Blogging-website-Frontend
  1. Install dependencies
npm install
  1. Environment setup - Create a .env file:
VITE_API_URL=your_backend_api_url
VITE_GITHUB_TOKEN=your_github_token
  1. Start development server
npm run dev
  1. Build for production
npm run build

Backend Setup

  1. Navigate to backend directory:
cd Blogging-website-Backend
  1. Install dependencies
npm install
  1. Create a .env file with these variables:
PORT=3000
DATABASE_URI=your_mongodb_connection_string
ACCESS_TOKEN_SECRET=your_jwt_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
EMAIL=your_gmail_address
EMAIL_PASSWORD=your_gmail_app_password
FRONTEND_URL=your_frontend_url
  1. Start the server:
npm run server

πŸ“ Project Structure

Frontend Structure

blogging-website/
β”œβ”€β”€ public/             # Static files
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/         # Images, icons, animations
β”‚   β”œβ”€β”€ components/     # Reusable components
β”‚   β”œβ”€β”€ hooks/          # Custom React hooks
β”‚   β”œβ”€β”€ pages/          # Main application pages
β”‚   β”œβ”€β”€ App.jsx         # Main application component
β”‚   β”œβ”€β”€ constants.js    # Application constants
β”‚   └── main.jsx        # Application entry point
β”œβ”€β”€ .env                # Environment variables
└── vite.config.js      # Vite configuration

Backend Structure

Blogging-website-Backend/
β”œβ”€β”€ api/                # API entry point
β”œβ”€β”€ config/             # Configuration files
β”œβ”€β”€ controllers/        # Request handlers
β”œβ”€β”€ middleware/         # Custom middleware
β”œβ”€β”€ models/             # Database models
β”œβ”€β”€ routes/             # API routes
β”œβ”€β”€ uploads/            # Temporary upload directory
└── utils/              # Utility functions

πŸ’‘ Key Implementation Details

Article Editor

The Editor component uses Formik for form state management and JoditField for rich text editing.

Security Implementation

  • CORS configuration restricts domain access
  • JWT verification middleware protects authenticated routes
  • Password hashing ensures secure credential storage
  • Input validation prevents malicious data

Authentication Flow

  1. User registers with email, username, and password
  2. Verification email is sent via Nodemailer
  3. User verifies email by clicking the link
  4. User logs in and receives JWT token
  5. Token is used for authenticated API requests

πŸ‘€ Author

Jadamal Sangeetha Choudhary

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

⭐ Show your support

Give a ⭐️ if this project helped you!

About

The project included features such as user authentication, content management, real-time interaction (commenting), to enhance the overall functionality and usability of the blogging platform. Iam currently working on this project.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages