Skip to content

singhmahipal/SparkLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SparkLink Banner

✨ SparkLink β€” Full-Stack Social Media App (MERN)

A modern social media platform built with the MERN stack, featuring authentication, stories, messaging, posts, profile management, connections, and real-time experiences.


πŸ“Œ Table of Contents


πŸš€ Overview

SparkLink is a full-stack social media application built using the MERN Stack, equipped with:

  • Real-time messaging
  • Stories & viewer
  • Post feed with images
  • Authentication (Clerk)
  • Media CDN (ImageKit)
  • Background jobs (Inngest)
  • Connections / Follow system

It is built for learning, scaling, and production-ready deployment.


✨ Features

πŸ” Authentication (Clerk)

  • Signup / Login / Logout
  • Protected routes
  • Middleware-secured API

πŸ’¬ Real-time Messaging

  • Chat UI
  • Recent messages panel
  • Smart notification popups

πŸ“ Posts & Feed

  • Create post (text + image)
  • Feed algorithm
  • Post card components

πŸ•’ Stories System

  • Story upload modal
  • Story viewer
  • Auto-expiry

πŸ‘₯ Connections

  • Follow / Unfollow
  • Pending requests
  • Discover page with suggestions

πŸ“€ Media Uploads (ImageKit)

  • Fast optimized CDN
  • Automatic compression
  • Upload via Multer

βš™οΈ Inngest Background Jobs

  • Webhooks
  • Notifications
  • Scheduled tasks

πŸ–Ό Screenshots

Replace these links with your real images later.

Feed Messaging Profile
Feed Chat Profile

πŸŽ₯ Demo GIF

Add screen recording later
Demo


πŸ›  Tech Stack

Frontend

React Vite Redux Toolkit TailwindCSS Clerk

Backend

Node.js Express MongoDB Inngest ImageKit


πŸ“ Project Structure


sparklink/
β”‚
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ features/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   β”œβ”€β”€ main.jsx
β”‚   β”‚   └── vite.config.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── vercel.json
β”‚
└── server/
β”œβ”€β”€ configs/
β”œβ”€β”€ controllers/
β”œβ”€β”€ inngest/
β”œβ”€β”€ middlewares/
β”œβ”€β”€ models/
β”œβ”€β”€ routes/
β”œβ”€β”€ utils/
β”œβ”€β”€ server.js
β”œβ”€β”€ package.json
└── vercel.json


βš™οΈ Environment Variables

Server .env


PORT=5000
MONGO_URI=your_mongodb_uri

CLERK_SECRET_KEY=your_clerk_secret_key

IMAGEKIT_PUBLIC_KEY=your_public
IMAGEKIT_PRIVATE_KEY=your_private
IMAGEKIT_URL_ENDPOINT=your_url

INNGEST_EVENT_KEY=your_key

EMAIL_USER=your_email
EMAIL_PASS=your_pass

Client .env


VITE_CLERK_PUBLISHABLE_KEY=your_key
VITE_API_URL=[http://localhost:5000](http://localhost:5000)


πŸš€ Getting Started

1. Clone the repo

git clone https://github.com/<your-username>/sparklink.git

2. Install dependencies

Client

cd client
npm install

Server

cd server
npm install

3. Run the App

Start Backend

npm run server

Start Frontend

npm run dev

πŸ“‘ API Summary

Auth Middleware

middlewares/auth.js

Endpoints

πŸ‘€ User Routes

POST   /api/user/create
GET    /api/user/profile/:id
PUT    /api/user/update

πŸ“ Post Routes

POST   /api/post/create
GET    /api/post/feed
GET    /api/post/:id

πŸ•’ Story Routes

POST   /api/story/create
GET    /api/story/all

πŸ’¬ Message Routes

POST   /api/message/send
GET    /api/message/list/:userId

🌐 Deployment

Supports:

  • Vercel (recommended)
  • Render
  • Railway
  • Netlify + Server Deployment
  • AWS / Azure / DigitalOcean

Each folder includes its own:

vercel.json

🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to open a PR or issue.


⭐ Support

If you like this project, please ⭐ star the repo β€” it motivates future updates!


Made with ❀️ using MERN Stack

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages