Skip to content

Repository files navigation

Full-Stack Blog Platform A full-stack blog platform built with React, Redux Toolkit, and Supabase.

Users can sign up, log in, create blog posts, edit/delete their own posts, and interact with content.

Deployed live 👉 blogplatform-coderesol.netlify.app

🚀 Features Core Features 🔑 Authentication: Email + Password login and Google OAuth via Supabase. Sessions are managed with Redux.

📝 Blog Posts: Users can create, view, edit, and delete their posts with support for titles, content, tags, and images. Editing and deleting are restricted to the post's author.

👤 User Profile: A dedicated profile page shows the user's name, bio, profile picture, and all of their posts.

Bonus Features Search: Filter posts by title or tags (case-insensitive).

Comments: Users can add and view comments on posts.

Pagination: Posts load in batches with a "Load More" button for a smooth user experience.

🛠️ Tech Stack Frontend: React, Redux Toolkit, React Router, SCSS

Backend & Database: Supabase (Postgres, Auth, Storage, Auto REST API)

Deployment: Netlify (frontend hosting)

AI Usage: Developed with iterative code generation using Bolt.new.

⚙️ Setup & Run

  1. Clone the Repository Bash

git clone cd blog-platform-web 2. Install Dependencies Bash

npm install 3. Configure Environment Variables Create a .env file in the project root and add your Supabase credentials:

Code snippet

VITE_SUPABASE_URL= VITE_SUPABASE_ANON_KEY= 4. Run Locally Bash

npm run dev 5. Build for Production Bash

npm run build 🗄️ Database Schema (Supabase) This project uses three main tables. Here is the SQL to set them up:

profiles Table SQL

create table profiles ( id uuid references auth.users(id) primary key, name text, bio text, profile_pic text, created_at timestamp with time zone default now() ); posts Table SQL

create table posts ( id uuid primary key default uuid_generate_v4(), title text not null, content text not null, tags text[] default '{}', image_url text, author_id uuid references auth.users(id), created_at timestamp with time zone default now() ); comments Table SQL

create table comments ( id uuid primary key default uuid_generate_v4(), post_id uuid references posts(id), user_id uuid references auth.users(id), text text not null, created_at timestamp with time zone default now() );

🤖 AI Usage Statement This project was developed with the aid of Bolt.new for rapid prototyping and code generation. My primary contributions involved:

Setting up the Supabase project and database schema.

Providing environment variables and managing configurations.

Writing prompts, integrating the generated code, and debugging.

Deploying the final application to Netlify.

👨‍💻 Author ABHILASH CHARY

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages