Skip to content

RonitSachdev/SakuSaku

Repository files navigation

πŸš€ SakuSaku - Tech Community Platform

A modern, full-stack social platform for developers to share knowledge, connect, and grow together. Built with React, Node.js, and MongoDB.

React Node.js Express.js MongoDB Vite Tailwind CSS JavaScript JWT

πŸ“± Screenshots

🏠 Landing Page

Landing Page Clean, modern landing page with glassmorphism design.

πŸ“° Home Feed

Home Feed Personalized social feed with posts from followed users and recommended content

πŸ‘€ User Profile

User Profile Comprehensive user profiles with bio, post history, and social connections

✍️ Post Creation

Post Creation Rich text editor with markdown support, code highlighting, and media embedding

πŸ’¬ Messaging System

Messaging Real-time direct messaging with clean, intuitive interface

🏷️ Topics & Discovery

Topics Explore and follow programming languages, frameworks, and technologies

πŸ“± Mobile Responsive

Mobile Feed Mobile Messages

Fully responsive design optimized for mobile devices

✨ Features

🌟 Core Functionality

  • User Authentication & Authorization - Secure JWT-based authentication
  • Social Feed - Personalized content feed with following/recommended posts
  • Post Creation - Rich text editor with markdown support, code highlighting, and video embedding
  • Topic System - Follow programming languages, frameworks, and technologies
  • Real-time Messaging - Direct messaging between developers
  • Notification System - Real-time notifications for likes, comments, follows
  • User Profiles - Customizable profiles with bio, avatar, and post history
  • Search & Discovery - Advanced search across posts, topics, and users
  • Responsive Design - Mobile-first design that works on all devices

🎨 Modern UI/UX

  • Glass Morphism Design - Beautiful frosted glass effects and modern aesthetics
  • Dark/Light Theme Support - Elegant theming system
  • Smooth Animations - Framer Motion powered interactions
  • Internationalization - Full English and Japanese language support
  • Progressive Web App - Fast, reliable, and installable

πŸ”§ Technical Features

  • Real-time Updates - Live notifications and message updates
  • Image & Video Upload - Cloud storage integration
  • Code Syntax Highlighting - Support for multiple programming languages
  • SEO Optimized - Meta tags, structured data, and performance optimization
  • API Rate Limiting - Secure and scalable backend architecture

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern React with hooks and functional components
  • Vite - Lightning-fast build tool and dev server
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Production-ready motion library
  • React Router - Client-side routing
  • React i18next - Internationalization
  • Axios - HTTP client for API calls

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT - JSON Web Token authentication
  • Multer - File upload handling
  • Bcrypt - Password hashing
  • CORS - Cross-origin resource sharing

Development Tools

  • ESLint - Code linting
  • Prettier - Code formatting
  • Git - Version control
  • Postman - API testing

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (v5 or higher)
  • npm or yarn

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/sakusaku.git
    cd sakusaku
  2. Install dependencies

    # Install backend dependencies
    cd backend
    npm install
    
    # Install frontend dependencies
    cd ../frontend
    npm install
  3. Environment Setup

    # Backend environment
    cd backend
    cp env.example .env
    # Edit .env with your configuration
  4. Database Setup

    # Start MongoDB
    mongod
    
    # Seed the database (optional)
    cd backend
    npm run seed
  5. Start Development Servers

    # Start backend server
    npm run server:dev
    
    # Start frontend server
    npm run client:dev
    
    # Start both server together
    npm run dev
  6. Access the Application

πŸ“ Project Structure

SakuSaku/
β”œβ”€β”€ backend/                 # Backend API server
β”‚   β”œβ”€β”€ middleware/         # Custom middleware
β”‚   β”œβ”€β”€ models/            # MongoDB schemas
β”‚   β”œβ”€β”€ routes/            # API routes
β”‚   β”œβ”€β”€ seeders/           # Database seeders
β”‚   └── server.js          # Express server
β”œβ”€β”€ frontend/              # React frontend
β”‚   β”œβ”€β”€ public/            # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable components
β”‚   β”‚   β”œβ”€β”€ pages/         # Page components
β”‚   β”‚   β”œβ”€β”€ services/      # API services
β”‚   β”‚   β”œβ”€β”€ store/         # State management
β”‚   β”‚   └── locales/       # Translation files
β”‚   └── package.json
└── README.md

πŸ”§ API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user

Posts

  • GET /api/posts - Get all posts
  • POST /api/posts - Create new post
  • GET /api/posts/:id - Get single post
  • PUT /api/posts/:id - Update post
  • DELETE /api/posts/:id - Delete post

Users

  • GET /api/users - Get all users
  • GET /api/users/:username - Get user profile
  • PUT /api/users/:id - Update user profile

Topics

  • GET /api/topics - Get all topics
  • POST /api/topics/:id/follow - Follow topic
  • DELETE /api/topics/:id/follow - Unfollow topic

Messages

  • GET /api/messages - Get conversations
  • POST /api/messages - Send message
  • GET /api/messages/:conversationId - Get conversation messages

🌍 Internationalization

SakuSaku supports multiple languages:

  • English - Primary language
  • Japanese - Full translation support

Language switching is available throughout the application with automatic browser detection.

🎨 Design System

Color Palette

  • Primary: Indigo (#6366F1)
  • Secondary: Purple (#8B5CF6)
  • Accent: Pink (#EC4899)
  • Background: White/Light Gray
  • Text: Dark Gray (#1F2937)

Typography

  • Font: Inter (Google Fonts)
  • Weights: 300, 400, 500, 600, 700

Components

  • Glass morphism cards with backdrop blur
  • Smooth hover animations
  • Responsive grid layouts
  • Modern form inputs
  • Interactive buttons with states

πŸ”’ Security Features

  • JWT Authentication - Secure token-based authentication
  • Password Hashing - Bcrypt encryption
  • Input Validation - Server-side validation
  • CORS Protection - Cross-origin request handling
  • Rate Limiting - API abuse prevention
  • XSS Protection - Content Security Policy

πŸ“Š Performance

  • Lazy Loading - Component and route-based code splitting
  • Image Optimization - Compressed and responsive images
  • Caching - Browser and API response caching
  • Bundle Optimization - Tree shaking and minification
  • CDN Ready - Static asset optimization

πŸ§ͺ Testing

# Run backend tests
cd backend
npm test

# Run frontend tests
cd frontend
npm test

πŸ“¦ Deployment

Frontend (Vercel/Netlify)

cd frontend
npm run build
# Deploy dist/ folder

Backend (Heroku/Railway)

cd backend
# Set environment variables
npm start

🀝 Contributing

  1. Fork the repository
  2. Create a 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

Acknowledgments


About

A modern, full-stack social platform for developers to share knowledge, connect, and grow together. Built with React, Node.js, and MongoDB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages