Skip to content

This repository is a blogging platform built with React.js for the frontend and Cloudflare Workers for the backend. It provides a seamless experience for users to write, publish, and manage their articles. The platform also allows for user authentication with JWT tokens, and secure database management with PostgreSQL.

Notifications You must be signed in to change notification settings

RanitDERIA/means-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub repo size GitHub stars GitHub forks

Twitter Follow LinkedIn



Thoughts Amplified

MEANS is a modern blogging platform that allows users to create, manage, and share their personal blogs. It features an easy-to-use interface with rich text formatting, media embedding, and customizable themes. Users can publish posts and explore a wide range of blogs based on their interests. With secure user authentication, responsive design, and dynamic content, MEANS offers an engaging and personalized blogging experience.

➥ Live Demo


Table of Contents

Prerequisites:

Before running the application on your local machine, ensure you have the following installed:

You will also need to set up the required environment variables mentioned in the documentation.

Technologies and Services Utilized:

  • Frontend: React.js React.js
  • Backend: Cloudflare Workers Cloudflare Workers
  • Validation Library: Zod Zod
  • Programming Language: TypeScript Typescript
  • ORM: Prisma Prisma
  • Database: PostgreSQL PostgreSQL
  • Authentication: JSON Web Tokens JSON Web Tokens
  • Deployment Platform: Vercel Vercel
  • Packages: npm npm
  • Cloud Services: Aiven Aiven
  • Web Framework: Hono Hono
  • CSS Framework: Tailwind Tailwind
  • Hosting for Static Assets: cloudflareCloudflare

Features:

  • User Authentication: Secure user authentication using JWT tokens.
  • Article Management: Publishing and editing articles with Markdown support.
  • User Profiles: View and manage user profiles, including authored articles.
  • Blogging Experience: Write and publish blogs in Markdown format.
  • Social Interaction: View others' profiles.
  • Publish Control: Articles can only be published when ready.

Run Locally:

To run MEANS locally, follow the steps below:

Linux and macOS:

  1. Clone the repository: Open your terminal and run the following command to clone the project repository:

    git clone https://github.com/RanitDERIA/means-blog.git
  2. Install dependencies: After cloning the repository, navigate into the project directory:

    cd <project-directory>

    Then, install the required dependencies using npm:

    npm install
  3. Configure your PostgreSQL database:

  • Create a PostgreSQL database.
  • Update the connection string in the Prisma configuration file (prisma/schema.prisma) with your PostgreSQL credentials.
    DATABASE_URL="postgres://username:password@host:port/database_name"
  1. Run database migrations: Run the following command to apply Prisma migrations to your database:

    npx prisma migrate dev
  2. Start the frontend and backend servers: Use the following command to start both the frontend and backend servers:

    npm run dev

Windows:

  1. Clone the repository: Open PowerShell and run the following command to clone the project repository:

    git clone <repository-url>
  2. Install dependencies: After cloning the repository, navigate into the project directory:

    cd <project-directory>

    Then, install the required dependencies using npm:

    npm install
  3. Configure your PostgreSQL database:

  • Create a PostgreSQL database.
  • Update the connection string in the Prisma configuration file (prisma/schema.prisma) with your PostgreSQL credentials.
    DATABASE_URL="postgres://username:password@host:port/database_name"
  1. Run database migrations: Run the following command to apply Prisma migrations to your database:

    npx prisma migrate dev
  2. Start the frontend and backend servers: Use the following command to start both the frontend and backend servers:

    npm run dev

Installation:

Clone the repository from GitHub:

Get it on GitHub

Usage:

  • Create Blog Posts: Write and publish your own blogs with ease using Markdown support.
  • View Articles: Explore articles published by others and stay updated on various topics.
  • Manage Profile: Customize and manage your profile, including viewing and editing your published posts.
  • Social Sharing: Share articles and posts on social media platforms directly from the website.

Deployment:

Your blog website can be deployed to platforms like Netlify, Vercel, or any service that supports PostgreSQL and Node.js with Cloudflare Workers.

Environment Variables:

You will need the following environment variables in your .env file or hosting provider’s environment settings:

DATABASE_URL=<your PostgreSQL database URL>

Contributing:

Contributions are always welcome!

If you'd like to contribute to this project, please follow these guidelines:

Fork the repository.

  1. Create a new branch for your feature or bug fix.
  2. Make your changes and commit them with descriptive messages.
  3. Push your changes to your fork.
  4. Submit a pull request.

Thank you for contributing to this project!

License:

This project is free to use and is licensed under the MIT License.

Contact:

If you want to get in touch or have any questions regarding this project, feel free to reach out to me on LinkedIn or follow me on Twitter.

For any inquiries, you can also open an issue or send a message directly via GitHub.

About

This repository is a blogging platform built with React.js for the frontend and Cloudflare Workers for the backend. It provides a seamless experience for users to write, publish, and manage their articles. The platform also allows for user authentication with JWT tokens, and secure database management with PostgreSQL.

Topics

Resources

Stars

Watchers

Forks