Welcome to the client-side repository of Dev-Synapse, a modern and feature-rich developer forum built using the MERN stack. It enables real-time interaction, role-based access, and an engaging UI/UX for tech communities.
π Live Site: Live Link
π οΈ Server Code: Server Side
- π Authentication: Firebase-powered login (Email/Password + Google)
- π Dynamic Homepage: Posts listed with pagination (5 per page), newest first
- π·οΈ Tag-Based Search: Filter posts by relevant tags
- π₯ Popularity Sort: Sort posts based on score (upvotes - downvotes)
- π Post Details: View post content, votes, and comments
- π Advanced Voting: Vote once, undo, or switch vote (YouTube-style)
- π¬ Comments: Authenticated users can comment on any post
- π¨ Reporting: Report posts/comments for admin review
- π Social Sharing: Share posts via Facebook, WhatsApp, etc.
- π’ Announcements: Admin messages shown with navbar badge for unseen ones
- π± Responsive UI: Fully optimized for all screen sizes
- π§ My Profile: Name, image, email, badge (Bronze/Gold), 3 latest posts
- β Add Post: Rich post form; Bronze: max 5 posts, Gold: unlimited
- π My Posts: View/delete your posts, see related comments
- π³ Membership: Upgrade to Gold with Stripe-powered secure checkout
- π Analytics: View total users, posts, and comments (Pie chart)
- π·οΈ Tag Management: Add or remove site-wide tags
- π₯ Manage Users: Filter/search by name/email, update roles
- π’ Make Announcement: Post updates across the site
- π§Ύ Reported Activities: View all reported content and take action
| Category | Tools Used |
|---|---|
| Frontend Core | React, Vite |
| Routing | React Router DOM |
| Styling | Tailwind CSS, DaisyUI |
| State Management | TanStack Query (React Query) |
| API Handling | Axios (custom hooks for public & private requests) |
| Authentication | Firebase |
| Forms | React Hook Form |
| Notifications | React Hot Toast, SweetAlert2 |
| Icons & Charts | React Icons, Recharts |
| Social Sharing | React Share |
| Payments | Stripe.js, React Stripe.js |
Follow these steps to run the project locally:
# 1. Clone the repo
git clone https://github.com/your-username/your-client-repo.git
# 2. Move into project directory
cd your-client-repo
# 3. Install dependencies
npm install
# 4. Start development server
npm run devApp will be live at: http://localhost:5173
π Environment Variables Create a .env.local file in the root of your project and add the following:
# Backend URL
VITE_API_URL=http://localhost:5000
# Firebase Config
VITE_APIKEY=your_firebase_apikey
VITE_AUTHDOMAIN=your_firebase_authdomain
VITE_PROJECTID=your_firebase_projectid
VITE_STORAGEBUCKET=your_firebase_storagebucket
VITE_MESSAGINGSENDERID=your_firebase_messagingsenderid
VITE_APPID=your_firebase_appid
# Stripe
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...your_key...
# ImgBB
VITE_IMGBB_API_KEY=your_imgbb_api_key
β Note: This is the client-side app. You must also run the server-side for full functionality.π€ Contributing Contributions are welcome! Please fork the repo, create a feature branch, and submit a pull request.
π License Licensed under the MIT License.