Skip to content

shakti177/postopia-blog-website-reactjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

342 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 Postopia - Where Your Ideas Take Flight ✨

postopia-blog-website-reactjs

πŸ“Œ Live Demo

https://postopia.vercel.app/

Postopia is a full-stack blogging platform built with React, Node.js, and MongoDB. It features user authentication, post creation & editing, dark/light mode toggle, and dynamic related post suggestions. Ideal for personal blogging, portfolio integration, and learning full-stack development. πŸš€


🌈 Features

πŸ–ŒοΈ Frontend

  • 🌐 Responsive Design: Tailored for all devices with Tailwind CSS.
  • ✍️ Rich Text Editor: Create stunning blogs with a powerful editor.
  • πŸŒ™ Dark Mode: Write comfortably, day or night.
  • πŸ”’ User Authentication: Secure login and registration with JWT.
  • πŸ“ Blog Management: Create, edit, and delete blogs with ease.
  • πŸ” Category & Search: Filter blogs by category or search for specific content.

βš™οΈ Backend

  • πŸ› οΈ RESTful API: Built with Express.js for seamless communication.
  • πŸ—„οΈ MongoDB Integration: Securely store user and blog data.
  • πŸ”‘ Authentication: JWT-based authentication for secure access.
  • πŸ“‚ File Uploads: Upload and manage images effortlessly.

πŸ“± Mobile App [Under Development]

  • πŸ“² React Native: Access Postopia on the go.
  • 🌟 Expo: Simplified development and deployment for iOS and Android.

πŸ—οΈ Project Structure

The project is organized into three main directories: backend, frontend, and postoPiaApp (mobile app). Below is an overview of the structure:

πŸ“‚ backend/
β”œβ”€β”€ πŸ“„ .env                # Environment variables
β”œβ”€β”€ πŸ“„ app.js              # Main server file
β”œβ”€β”€ πŸ“‚ config/             # Configuration files
β”‚   └── mongo-connection.js # MongoDB connection setup
β”œβ”€β”€ πŸ“‚ controllers/        # API controllers
β”‚   β”œβ”€β”€ authController.js   # Authentication logic
β”‚   └── postController.js   # Blog post logic
β”œβ”€β”€ πŸ“‚ models/             # Mongoose models
β”œβ”€β”€ πŸ“‚ routes/             # API routes
└── πŸ“‚ middleware/         # Middleware (e.g., authentication)

πŸ“‚ frontend/
β”œβ”€β”€ πŸ“‚ src/
β”‚   β”œβ”€β”€ πŸ“‚ components/      # Reusable UI components
β”‚   β”œβ”€β”€ πŸ“‚ pages/           # Application pages (e.g., Login, Dashboard)
β”‚   β”œβ”€β”€ πŸ“‚ context/         # React context for state management
β”‚   β”œβ”€β”€ πŸ“‚ utils/           # Utility functions
β”‚   └── πŸ“‚ assets/          # Static assets (e.g., images, icons)
β”œβ”€β”€ πŸ“‚ public/             # Public files (e.g., index.html)
└── πŸ“„ .env                # Environment variables for the frontend

πŸ“‚ postoPiaApp/
β”œβ”€β”€ πŸ“‚ src/
β”‚   β”œβ”€β”€ πŸ“‚ components/      # Reusable components for the mobile app
β”‚   β”œβ”€β”€ πŸ“‚ screens/         # App screens (e.g., Home, Profile)
β”‚   β”œβ”€β”€ πŸ“‚ navigation/      # Navigation setup (React Navigation)
β”‚   └── πŸ“‚ assets/          # Static assets for the mobile app
└── πŸ“„ App.js              # Main entry point for the mobile app

Key Highlights:

  • backend/: Contains the server-side logic, including API routes, controllers, and database models.
  • frontend/: Houses the React-based web application with reusable components and pages.
  • postoPiaApp/: The mobile app built with React Native and Expo for iOS and Android platforms.

πŸš€ Getting Started

πŸ› οΈ Backend Setup

  1. Navigate to the backend directory:
    cd backend
  2. Install dependencies:
    npm install
  3. Create a .env file in the backend directory and add:
    MONGODB_URI=<your-mongodb-uri>
    ACCESS_JWT_KEY=<your-access-jwt-key>
    REFRESH_JWT_KEY=<your-refresh-jwt-key>
    
  4. Start the server:
    npm start

🎨 Frontend Setup

  1. Navigate to the frontend directory:
    cd frontend
  2. Install dependencies:
    npm install
  3. Create a .env file in the frontend directory and add:
    VITE_API_URL=http://localhost:3000
    
  4. Start the development server:
    npm run dev

πŸ“± Mobile App Setup

  1. Navigate to the postoPiaApp directory:
    cd postoPiaApp
  2. Install dependencies:
    npm install
  3. Start the Expo development server:
    npm start

🌍 Deployment

πŸ–₯️ Backend

The backend is configured for deployment on Vercel. Ensure the vercel.json file is present in the backend directory:

{
  "version": 2,
  "builds": [
    {
      "src": "app.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/app.js"
    }
  ]
}

🌐 Frontend

The frontend is built using Vite and can be deployed on platforms like Vercel or Netlify. Build the project with:

npm run build

πŸ› οΈ Technologies Used

πŸ’» Frontend

  • React
  • Tailwind CSS
  • React Router
  • React Quill

βš™οΈ Backend

  • Node.js
  • Express.js
  • MongoDB
  • Multer
  • JWT

πŸ“± Mobile App

  • React Native
  • Expo

🀝 Contributing

We welcome contributions! Follow these steps to get started:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Add feature-name"
  4. Push to the branch:
    git push origin feature-name
  5. Open a pull request.

πŸ‘©β€πŸ’» Authors


πŸŽ‰ Thank you for visiting Postopia! We can't wait to see what you'll create.

About

Postopia is a full-stack blogging platform built with React, Node.js, and MongoDB. It features user authentication, post creation & editing, dark/light mode toggle, and dynamic related post suggestions. Ideal for personal blogging, portfolio integration, and learning full-stack development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors