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.
- Prerequisites
- Technologies Utilized
- Features
- Run Locally
- Installation
- Usage
- Deployment
- Environment Variables
- Contributing
- License
- Contact
Before running the application on your local machine, ensure you have the following installed:
- React.js (for frontend development)
- Cloudflare Workers (for backend development)
- Zod (for input validation)
- TypeScript (for static typing)
- Prisma (for ORM)
- PostgreSQL (for database management)
- JSON Web Tokens (JWT) (for authentication)
You will also need to set up the required environment variables mentioned in the documentation.
- Frontend: React.js
- Backend: Cloudflare Workers
- Validation Library: Zod
- Programming Language: Typescript
- ORM: Prisma
- Database: PostgreSQL
- Authentication: JSON Web Tokens
- Deployment Platform: Vercel
- Packages: npm
- Cloud Services: Aiven
- Web Framework: Hono
- CSS Framework: Tailwind
- Hosting for Static Assets: Cloudflare
- 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.
To run MEANS locally, follow the steps below:
Linux and macOS:
-
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
-
Install dependencies: After cloning the repository, navigate into the project directory:
cd <project-directory>
Then, install the required dependencies using npm:
npm install
-
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"
-
Run database migrations: Run the following command to apply Prisma migrations to your database:
npx prisma migrate dev
-
Start the frontend and backend servers: Use the following command to start both the frontend and backend servers:
npm run dev
Windows:
-
Clone the repository: Open PowerShell and run the following command to clone the project repository:
git clone <repository-url>
-
Install dependencies: After cloning the repository, navigate into the project directory:
cd <project-directory>
Then, install the required dependencies using npm:
npm install
-
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"
-
Run database migrations: Run the following command to apply Prisma migrations to your database:
npx prisma migrate dev
-
Start the frontend and backend servers: Use the following command to start both the frontend and backend servers:
npm run dev
Clone the repository from GitHub:
- 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.
Your blog website can be deployed to platforms like Netlify, Vercel, or any service that supports PostgreSQL and Node.js with Cloudflare Workers.
You will need the following environment variables in your .env file or hosting provider’s environment settings:
DATABASE_URL=<your PostgreSQL database URL>
Contributions are always welcome!
If you'd like to contribute to this project, please follow these guidelines:
Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your fork.
- Submit a pull request.
Thank you for contributing to this project!
This project is free to use and is licensed under the MIT License.
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.