Skip to content

themradul07/Blogrr-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blogrr πŸš€

A modern blogging platform built with TypeScript, React, and Node.js.

Share your thoughts, stories, and ideas with the world.

License GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub last commit

TypeScript React Node.js Express.js

πŸ“‹ Table of Contents

About

Blogrr is a full-stack blogging platform designed to be simple, fast, and customizable. It allows users to create, publish, and manage blog posts with ease. The platform is built using TypeScript for type safety and maintainability, React for a dynamic user interface, and Node.js with Express.js for the backend API.

This project aims to provide a modern alternative to traditional blogging platforms, focusing on developer experience and performance. It's ideal for developers who want to quickly set up a blog, customize it to their needs, or contribute to an open-source blogging platform.

Key technologies include React for the frontend, Node.js and Express.js for the backend, and TypeScript for enhanced code quality. The architecture follows a modular design, making it easy to extend and customize the platform with new features and integrations.

✨ Features

  • 🎯 Create and Manage Posts: Easily create, edit, and delete blog posts with a rich text editor.
  • ⚑ Performance: Optimized for fast loading times and smooth user experience.
  • πŸ”’ Security: Secure user authentication and authorization to protect your content.
  • 🎨 UI/UX: Clean and intuitive user interface for a seamless blogging experience.
  • πŸ“± Responsive: Fully responsive design that works on all devices.
  • πŸ› οΈ Extensible: Modular architecture that allows for easy customization and extension.

🎬 Demo

πŸ”— Live Demo: https://blogrr-front.vercel.app/

Screenshots

alt text Homepage

alt text Authentication

alt text All Blogs

πŸš€ Quick Start

Clone and run in 3 steps:

git clone https://github.com/themradul07/Blogrr-.git
cd Blogrr-
npm install && npm start

Open http://localhost:3000 to view it in your browser.

πŸ“¦ Installation

Prerequisites

  • Node.js 18+ and npm
  • Git
  • MongoDB installed locally or a MongoDB Atlas account

Option 1: From Source

# Clone repository
git clone https://github.com/themradul07/Blogrr-.git
cd Blogrr-

# Install dependencies
npm install

# Start development server
npm run dev

Option 2: Docker

docker run -p 3000:3000 themradul07/blogrr

πŸ’» Usage

Basic Usage

// Example: Fetching blog posts from the API
import { getPosts } from './services/api';

async function fetchBlogPosts() {
  const posts = await getPosts();
  console.log(posts);
}

fetchBlogPosts();

Advanced Examples

// Example: Creating a new blog post
import { createPost } from './services/api';

async function createNewPost() {
  const newPost = {
    title: 'My New Blog Post',
    content: 'This is the content of my new blog post.',
    author: 'John Doe'
  };

  const createdPost = await createPost(newPost);
  console.log(createdPost);
}

createNewPost();

βš™οΈ Configuration

Environment Variables

Create a .env file in the root directory:

# Database
DATABASE_URL=mongodb://localhost:27017/blogrr
DATABASE_NAME=blogrr

# Server
PORT=3000
NODE_ENV=development

# Authentication
JWT_SECRET=your_jwt_secret_key

Configuration File

{
  "name": "blogrr-config",
  "version": "1.0.0",
  "settings": {
    "theme": "light",
    "language": "en",
    "postsPerPage": 10
  }
}

πŸ“ Project Structure

Blogrr-/
β”œβ”€β”€ πŸ“ client/
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/          # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/              # Application pages
β”‚   β”‚   β”œβ”€β”€ πŸ“ hooks/              # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ πŸ“ utils/              # Utility functions
β”‚   β”‚   β”œβ”€β”€ πŸ“ services/           # API services
β”‚   β”‚   β”œβ”€β”€ πŸ“ styles/             # CSS/styling files
β”‚   β”‚   └── πŸ“„ index.tsx            # Application entry point
β”‚   β”œβ”€β”€ πŸ“„ public/                 # Static assets
β”‚   β”œβ”€β”€ πŸ“„ .env.development      # Development environment variables
β”‚   β”œβ”€β”€ πŸ“„ package.json           # Client dependencies
β”‚   └── πŸ“„ tsconfig.json          # TypeScript configuration
β”œβ”€β”€ πŸ“ server/
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/        # Route handlers
β”‚   β”‚   β”œβ”€β”€ πŸ“ models/             # Data models
β”‚   β”‚   β”œβ”€β”€ πŸ“ routes/             # API routes
β”‚   β”‚   β”œβ”€β”€ πŸ“ middleware/         # Middleware functions
β”‚   β”‚   β”œβ”€β”€ πŸ“ utils/              # Utility functions
β”‚   β”‚   └── πŸ“„ index.ts            # Server entry point
β”‚   β”œβ”€β”€ πŸ“„ .env.development      # Development environment variables
β”‚   β”œβ”€β”€ πŸ“„ package.json           # Server dependencies
β”‚   └── πŸ“„ tsconfig.json          # TypeScript configuration
β”œβ”€β”€ πŸ“„ .gitignore             # Git ignore rules
β”œβ”€β”€ πŸ“„ package.json           # Project dependencies
β”œβ”€β”€ πŸ“„ README.md              # Project documentation
└── πŸ“„ LICENSE                # License file

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Steps

  1. 🍴 Fork the repository
  2. 🌟 Create your feature branch (git checkout -b feature/AmazingFeature)
  3. βœ… Commit your changes (git commit -m 'Add some AmazingFeature)
  4. πŸ“€ Push to the branch (git push origin feature/AmazingFeature)
  5. πŸ”ƒ Open a Pull Request

Development Setup

# Fork and clone the repo
git clone https://github.com/yourusername/Blogrr-.git

# Install dependencies (in both client and server directories)
cd Blogrr-/client && npm install
cd Blogrr-/server && npm install

# Create a new branch
git checkout -b feature/your-feature-name

# Make your changes and test
# Run client and server development servers in separate terminals
cd Blogrr-/client && npm start
cd Blogrr-/server && npm run dev

# Commit and push
git commit -m "Description of changes"
git push origin feature/your-feature-name

Code Style

  • Follow existing code conventions
  • Run npm run lint before committing
  • Add tests for new features
  • Update documentation as needed

Testing

# Run tests (in both client and server directories)
cd Blogrr-/client && npm test
cd Blogrr-/server && npm test

FAQ

Q: How do I customize the theme?

A: You can customize the theme by modifying the CSS files in the client/src/styles directory.

Q: How do I add new features?

A: You can add new features by creating new components, pages, or API endpoints. Follow the existing project structure and conventions.

πŸ“„ License

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

License Summary

  • βœ… Commercial use
  • βœ… Modification
  • βœ… Distribution
  • βœ… Private use
  • ❌ Liability
  • ❌ Warranty

πŸ™ Acknowledgments

  • 🎨 Design inspiration: Dribbble
  • πŸ“š Libraries used:
    • React - A JavaScript library for building user interfaces
    • Express - Fast, unopinionated, minimalist web framework for Node.js
    • Mongoose - Elegant MongoDB object modeling for Node.js
  • πŸ‘₯ Contributors: Thanks to all contributors
  • 🌟 Special thanks: To the open-source community for providing valuable resources and tools.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published