Skip to main content
Back to Portfolio
GitHub
Full-Stack
JavaScript
๐Ÿ”จStill working on project

Thinkify

Full-stack intellectual discussion platform for meaningful conversations. Share articles, engage with thinkers, and discover perspectives that matter.

#JavaScript#React#Social#Node.js#Full-Stack
๐Ÿ”จ
Active Development โ€” Project In Progress
We are still actively working on this project. Full codebase, architecture design, and technical specifications are available below from the repository README.
๐Ÿ”’zihadimasumbillah/thinkify
main
Thinkify Preview Screenshot
README.md (fetched live from GitHub: zihadimasumbillah/thinkify)

๐Ÿง  Thinkify

A vibrant digital space for meaningful conversations

Thinkify
Node
React
MongoDB

Thinkify is a modern forum and social platform built with the MERN stack, featuring a stunning Neon Cyberpunk Minimalist design aesthetic. It combines the thoughtful discussion of forums with the engagement of social media.

โœจ Features

๐Ÿ” Authentication & Security

  • JWT-based authentication with HttpOnly cookies
  • Secure password hashing with bcrypt
  • Rate limiting and request sanitization
  • Protected routes and role-based access

๐Ÿ“ Content Management

  • Rich text posts with categories
  • Threaded comments with nested replies
  • Like, bookmark, and share functionality
  • User-generated content moderation

๐Ÿ‘ฅ Social Features

  • User profiles with customization
  • Follow/unfollow system
  • Activity feeds and notifications
  • Real-time interaction updates

๐ŸŽจ Design System

  • Deep Matte Charcoal (#121212) background
  • Neon Green (#4ADE80) accent color
  • Smooth animations with Framer Motion
  • Fully responsive mobile-first design

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • MongoDB 6.0+ (local or Atlas)
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/yourusername/thinkify.git
cd thinkify
  1. Install server dependencies
cd server
npm install
  1. Configure environment variables
cp .env.example .env
# Edit .env with your configuration
  1. Install client dependencies
cd ../client
npm install
  1. Start development servers

In one terminal (server):

cd server
npm run dev

In another terminal (client):

cd client
npm run dev
  1. Open your browser
http://localhost:5173

๐Ÿ“ Project Structure

thinkify/
โ”œโ”€โ”€ client/                 # React frontend
โ”‚   โ”œโ”€โ”€ public/            # Static assets
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ components/    # Reusable UI components
โ”‚       โ”‚   โ”œโ”€โ”€ common/    # Button, Input, Avatar, etc.
โ”‚       โ”‚   โ”œโ”€โ”€ layout/    # Navbar, Sidebar
โ”‚       โ”‚   โ”œโ”€โ”€ auth/      # Auth-related components
โ”‚       โ”‚   โ””โ”€โ”€ posts/     # Post components
โ”‚       โ”œโ”€โ”€ layouts/       # Page layouts
โ”‚       โ”œโ”€โ”€ pages/         # Route pages
โ”‚       โ”œโ”€โ”€ services/      # API service layer
โ”‚       โ”œโ”€โ”€ stores/        # Zustand state stores
โ”‚       โ””โ”€โ”€ hooks/         # Custom React hooks
โ”‚
โ””โ”€โ”€ server/                # Express backend
    โ””โ”€โ”€ src/
        โ”œโ”€โ”€ config/        # Database configuration
        โ”œโ”€โ”€ controllers/   # Route handlers
        โ”œโ”€โ”€ middleware/    # Custom middleware
        โ”œโ”€โ”€ models/        # Mongoose schemas
        โ”œโ”€โ”€ routes/        # API routes
        โ””โ”€โ”€ utils/         # Helper utilities

๐Ÿ› ๏ธ Tech Stack

Frontend

Technology Purpose
React 18 UI library
Vite Build tool & dev server
Tailwind CSS Utility-first styling
Framer Motion Animations
React Router v6 Client-side routing
TanStack Query Server state management
Zustand Client state management
Axios HTTP client

Backend

Technology Purpose
Node.js Runtime environment
Express.js Web framework
MongoDB Database
Mongoose ODM
JWT Authentication
bcryptjs Password hashing

Security

  • helmet - Security headers
  • cors - Cross-origin resource sharing
  • express-rate-limit - Rate limiting
  • express-validator - Input validation
  • express-mongo-sanitize - NoSQL injection prevention

๐Ÿ“ก API Endpoints

Authentication

POST   /api/auth/register     # Register new user
POST   /api/auth/login        # User login
POST   /api/auth/logout       # User logout
GET    /api/auth/me           # Get current user
PUT    /api/auth/password     # Update password

Users

GET    /api/users             # Get all users
GET    /api/users/:id         # Get user by ID
PUT    /api/users/profile     # Update profile
POST   /api/users/:id/follow  # Follow user
DELETE /api/users/:id/follow  # Unfollow user

Posts

GET    /api/posts             # Get all posts (paginated)
GET    /api/posts/:id         # Get single post
POST   /api/posts             # Create post
PUT    /api/posts/:id         # Update post
DELETE /api/posts/:id         # Delete post
POST   /api/posts/:id/like    # Toggle like
POST   /api/posts/:id/bookmark # Toggle bookmark

Comments

GET    /api/comments/post/:postId  # Get comments for post
POST   /api/comments               # Create comment
PUT    /api/comments/:id           # Update comment
DELETE /api/comments/:id           # Delete comment
POST   /api/comments/:id/like      # Toggle like

Categories

GET    /api/categories        # Get all categories
GET    /api/categories/:id    # Get category by ID
POST   /api/categories        # Create category (admin)
PUT    /api/categories/:id    # Update category (admin)
DELETE /api/categories/:id    # Delete category (admin)

๐ŸŽจ Design Tokens

Colors

--charcoal: #121212      /* Background */
--surface: #1a1a1a       /* Cards/Panels */
--surface-light: #242424 /* Elevated surfaces */
--neon: #4ADE80          /* Primary accent */
--neon-hover: #22C55E    /* Hover state */
--purple: #A78BFA        /* Secondary accent */
--text-primary: #E5E5E5  /* Main text */
--text-secondary: #9CA3AF /* Muted text */

Typography

  • Headings: Inter (sans-serif)
  • Body: Roboto (sans-serif)
  • Code: JetBrains Mono (monospace)

๐Ÿงช Development

Running Tests

# Server tests
cd server
npm test

# Client tests
cd client
npm test

Linting

# Lint server
cd server
npm run lint

# Lint client
cd client
npm run lint

Building for Production

# Build client
cd client
npm run build

# The build output will be in client/dist

๐Ÿšข Deployment

Environment Variables (Production)

NODE_ENV=production
MONGODB_URI=mongodb+srv://...
JWT_SECRET=your-production-secret
CLIENT_URL=https://yourdomain.com

Docker (Coming Soon)

docker-compose up -d

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments


Made with ๐Ÿ’š and lots of โ˜•

Thinkify - Where Ideas Come Alive

Explore More Projects

Discover other applications built by Masum Billah Zihadi

View Allโ†’