Narrate is a minimalistic blogging platform designed to provide a seamless user experience for creating, updating, and managing blog posts. It allows users to register, update their profiles, and interact with others' content.
- User Registration and Authentication: Secure user login and registration with JWT.
- Profile Management: Update personal details and bio.
- Blog Management: Create, update, and delete blog posts.
- Content Interaction: View and read blogs from other users.
- Responsive Design: Optimized for various devices with a user-friendly interface.
-
Frontend:
- React
- TypeScript
- Tailwind CSS
- React Router
- Recoil
-
Backend:
- Hono (TypeScript)
- Cloudflare Workers
-
Database:
- PostgreSQL
- Prisma ORM
-
Authentication and Security:
- bcrypt
- JWT
- Node.js: v14 or higher
- Docker: For containerization (optional but recommended)
-
Clone the repository:
git clone https://github.com/pmalu9211/narrate.git cd narrate -
Install dependencies:
npm install
-
Set up environment variables:
Create a
.envfile in the root directory with the following variables:DATABASE_URL=your_postgresql_database_url JWT_SECRET=your_jwt_secret_key
-
Run database migrations:
npx prisma migrate deploy
-
Start the development server:
npm run dev
-
Access the application:
Open your browser and navigate to
http://localhost:3000.
-
Build the Docker image:
docker build -t narrate:latest . -
Run the Docker container:
docker run -d -p 3000:3000 --env-file .env narrate:latest
- Creating a Blog: Navigate to the "Create Post" page and fill out the blog form.
- Updating a Blog: Edit your blog posts from the "My Posts" section.
- Deleting a Blog: Remove blog posts via the "My Posts" section.
- Profile Management: Update your profile details under "My Profile".
-
Fork the repository:
Click the "Fork" button on the top right to fork the repository.
-
Clone your fork:
git clone https://github.com/pmalu9211/narrate.git
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Add some feature"
-
Push to the branch:
git push origin feature/your-feature-name
-
Create a pull request:
Open a pull request to merge your changes into the
mainbranch.
This project is licensed under the MIT License - see the LICENSE file for details.
Prathamesh Malu
- Email: pmalu9211@gmail.com
- GitHub: pmalu9211