Skip to content

AhqafCoder/OPENGEEK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenGeek Banner

🌟 OPENGEEK – India's Premier Tech Community πŸš€

Stars Forks Contributors License Next.js TypeScript PostgreSQL Clerk

Empowering student developers through real-world projects, mentorship, and community collaboration

🌐 Visit Website β€’ πŸ’¬ Join Discord β€’ πŸ“± Follow Instagram β€’ πŸš€ Get Started


🎯 What is OpenGeek?

OpenGeek is India's fastest-growing tech community for student developers, built by students, for students. We bridge the gap between academic learning and industry experience through:

  • πŸš€ Real-world projects with actual impact
  • πŸ‘₯ Peer-to-peer mentorship and collaboration
  • πŸ’Ό Internship and job opportunities
  • πŸ† Hackathons and coding competitions
  • πŸ“š Skill development workshops and bootcamps
  • 🌐 Open source contributions and portfolio building

🌟 Why Choose OpenGeek?

Feature Description
πŸŽ“ Student-Centric Built specifically for college students and recent graduates
πŸ’‘ Project-Based Learning Learn by building real applications that matter
🀝 Community Support 24/7 peer support and mentorship network
πŸš€ Career Growth Direct connections to internships and job opportunities
πŸ† Recognition Showcase your work and get recognized for contributions
πŸ“ˆ Skill Tracking Track your progress and build a strong developer portfolio

πŸ“ Repository Structure

This monorepo contains all apps, platforms, and tools under the OpenGeek initiative.

OPENGEEK/
β”‚
β”œβ”€β”€ admin/                     # πŸ”§ Admin dashboard (React + Vite)
β”‚   β”œβ”€β”€ client/                # Admin frontend (React + TypeScript + Vite)
β”‚   β”‚   β”œβ”€β”€ src/               # Admin app source code
β”‚   β”‚   β”œβ”€β”€ public/            # Static assets
β”‚   β”‚   β”œβ”€β”€ components.json    # UI/component library config
β”‚   β”‚   β”œβ”€β”€ vite.config.ts     # Vite configuration
β”‚   β”‚   β”œβ”€β”€ tsconfig.json      # TypeScript configuration
β”‚   β”‚   └── package.json       # Frontend dependencies
β”‚   β”‚
β”‚   └── server/                # Admin backend (Express.js)
β”‚       β”œβ”€β”€ index.js           # Admin API entry point
β”‚       └── package.json       # Backend dependencies
β”‚
β”œβ”€β”€ communitysite/             # βœ… Main fullstack app (Client + Server)
β”‚   β”œβ”€β”€ client/                # Frontend (Next.js + Tailwind + TypeScript)
β”‚   β”‚   β”œβ”€β”€ src/               # Main app source code (components, pages, utils)
β”‚   β”‚   β”œβ”€β”€ public/            # Static assets (favicon, logos, images)
β”‚   β”‚   β”œβ”€β”€ .next/             # Next.js build output
β”‚   β”‚   β”œβ”€β”€ components.json    # UI/component library config
β”‚   β”‚   β”œβ”€β”€ eslint.config.mjs  # ESLint configuration
β”‚   β”‚   β”œβ”€β”€ next.config.ts     # Next.js configuration
β”‚   β”‚   β”œβ”€β”€ tsconfig.json      # TypeScript configuration
β”‚   β”‚   β”œβ”€β”€ .env*              # Environment variables
β”‚   β”‚   └── package.json       # Frontend dependencies
β”‚   β”‚
β”‚   β”œβ”€β”€ server/                # Backend (Express.js + PostgreSQL)
β”‚   β”‚   β”œβ”€β”€ config/            # Database and app configuration
β”‚   β”‚   β”œβ”€β”€ database-scripts/  # Database setup and migration scripts
β”‚   β”‚   β”œβ”€β”€ middleware/        # Express middleware (auth, validation, etc.)
β”‚   β”‚   β”œβ”€β”€ routes/            # API route handlers
β”‚   β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”‚   β”œβ”€β”€ index.js           # API entry point (Express app)
β”‚   β”‚   β”œβ”€β”€ .env*              # Server environment variables
β”‚   β”‚   β”œβ”€β”€ render.yaml        # Render deployment config
β”‚   β”‚   └── package.json       # Backend dependencies
β”‚   β”‚
β”‚   β”œβ”€β”€ CLOUDINARY_INTEGRATION_GUIDE.md
β”‚   β”œβ”€β”€ SYSTEM_ARCHITECTURE_DOCUMENTATION.txt
β”‚   └── README.md
β”‚
β”œβ”€β”€ enterprise/                # 🏒 Enterprise platform (Next.js)
β”‚   β”œβ”€β”€ src/                   # Enterprise app source code
β”‚   β”‚   β”œβ”€β”€ app/               # Next.js App Router pages
β”‚   β”‚   └── components/        # React components
β”‚   β”œβ”€β”€ public/                # Static assets
β”‚   β”œβ”€β”€ .next/                 # Next.js build output
β”‚   β”œβ”€β”€ next.config.ts         # Next.js configuration
β”‚   β”œβ”€β”€ tailwind.config.js     # Tailwind CSS configuration
β”‚   β”œβ”€β”€ tsconfig.json          # TypeScript configuration
β”‚   └── package.json           # Dependencies
β”‚
β”œβ”€β”€ mainsite/                  # 🌐 Marketing/landing site for opengeek.in
β”‚   β”œβ”€β”€ src/                   # Next.js source code
β”‚   β”‚   β”œβ”€β”€ app/               # Next.js App Router pages
β”‚   β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”œβ”€β”€ lib/               # Utility libraries
β”‚   β”‚   └── middleware.ts      # Next.js middleware
β”‚   β”œβ”€β”€ public/                # Static assets (images, icons, etc.)
β”‚   β”œβ”€β”€ next.config.ts         # Next.js configuration
β”‚   β”œβ”€β”€ tailwind.config.js     # Tailwind CSS configuration
β”‚   β”œβ”€β”€ tsconfig.json          # TypeScript configuration
β”‚   β”œβ”€β”€ vercel.json            # Vercel deployment config
β”‚   └── package.json           # Dependencies
β”‚
β”œβ”€β”€ .vscode/                   # VS Code workspace settings
β”œβ”€β”€ LICENSE
└── README.md                  # Project overview and setup guide

βš™οΈ Tech Stack

🎨 Frontend Technologies

Technology Version Purpose
Next.js 15.x React framework with SSR, SSG, and App Router
TypeScript 5.x Static typing for better code quality and developer experience
Tailwind CSS 3.x Utility-first CSS framework for rapid UI development
Clerk Latest Authentication and user management
Axios Latest HTTP client for API requests
React Hook Form Latest Form handling and validation
Lucide React Latest Beautiful, customizable icons

πŸ”§ Backend Technologies

Technology Version Purpose
Node.js 18+ JavaScript runtime environment
Express.js 4.x Fast, unopinionated web framework
PostgreSQL 16+ Robust relational database
Clerk Backend Latest Server-side authentication
Cloudinary Latest Image and media management
CORS Latest Cross-origin resource sharing
Helmet Latest Security middleware

πŸ› οΈ Development Tools

  • ESLint - Code linting and quality checks
  • Prettier - Code formatting
  • Husky - Git hooks for code quality
  • VS Code - Recommended IDE with workspace settings

🌐 Project Overview

Folder Description Status
communitysite Main OpenGeek community platform - Full-stack social platform with posts, projects, user profiles, and real-time interactions βœ… Active
mainsite Marketing/landing site - Public-facing website for www.opengeek.in with community info and onboarding βœ… Active
enterprise Enterprise platform - Business-focused platform for organizations and enterprise users 🚧 In Development
admin Admin dashboard - Management interface for community moderation, analytics, and platform administration 🚧 In Development

πŸš€ Quick Start

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

Requirement Version Download
Node.js 18.0+ Download
npm 9.0+ Comes with Node.js
PostgreSQL 16.0+ Download
Git Latest Download

πŸ”§ Installation & Setup

1. Clone the Repository

git clone https://github.com/AhqafCoder/OPENGEEK.git
cd OPENGEEK

2. Set Up the Community Platform (Main App)

🎨 Frontend Setup
cd communitysite/client
npm install

Create your environment file:

cp .env.example .env.local

Configure your .env.local:

# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key

# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:5000/api

# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000
πŸ”§ Backend Setup
cd ../server
npm install

Create your environment file:

cp .env.example .env

Configure your .env:

# Server Configuration
PORT=5000
NODE_ENV=development

# Database Configuration
DATABASE_URL=postgresql://username:password@localhost:5432/opengeek_community

# Clerk Configuration
CLERK_SECRET_KEY=your_clerk_secret_key
CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key

# Cloudinary Configuration (for image uploads)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

# Frontend URL (for CORS)
FRONTEND_URL=http://localhost:3000
πŸ—„οΈ Database Setup
# Create PostgreSQL database
createdb opengeek_community

# Run database migrations (if available)
npm run migrate

3. Start the Development Servers

Start Backend Server
cd communitysite/server
npm run dev
Start Frontend Server (in a new terminal)
cd communitysite/client
npm run dev

4. Access the Applications

Application URL Description
Community Platform http://localhost:3000 Main social platform
API Server http://localhost:5000 Backend API
Main Website http://localhost:3000 Marketing site (separate setup)

🌐 Running Other Applications

Main Website (Marketing Site)

cd mainsite
npm install
npm run dev

Enterprise Platform

cd enterprise
npm install
npm run dev

Admin Dashboard

# Frontend
cd admin/client
npm install
npm run dev

# Backend
cd admin/server
npm install
npm start

✨ Key Features

🏠 Community Platform Features

  • πŸ‘€ User Profiles - Customizable profiles with skills, projects, and achievements
  • πŸ“ Social Posts - Share updates, ask questions, and engage with the community
  • πŸš€ Project Showcase - Display your projects with live demos and GitHub integration
  • πŸ’¬ Real-time Chat - Connect with fellow developers instantly
  • πŸ† Achievement System - Earn badges and recognition for contributions
  • οΏ½ Rkesource Sharing - Access curated learning materials and tutorials
  • 🎯 Skill Tracking - Monitor your learning progress and set goals
  • πŸ” Smart Search - Find projects, users, and resources easily

🌐 Marketing Site Features

  • πŸ“± Responsive Design - Perfect experience across all devices
  • ⚑ Fast Loading - Optimized for performance with Next.js
  • 🎨 Modern UI - Clean, professional design with smooth animations
  • οΏ½ Analdytics Integration - Track visitor engagement and conversions
  • πŸ” SEO Optimized - Built for search engine visibility

🏒 Enterprise Platform Features

  • πŸ‘₯ Team Management - Organize and manage development teams
  • πŸ“ˆ Project Analytics - Track project progress and team performance
  • πŸ” Advanced Security - Enterprise-grade security and compliance
  • πŸ”— API Integration - Connect with existing enterprise tools
  • πŸ“Š Custom Dashboards - Tailored insights for business needs

οΏ½ nDeployment

🌐 Frontend Deployment (Vercel - Recommended)

Community Platform

cd communitysite/client
npm run build
# Deploy to Vercel
vercel --prod

Main Website

cd mainsite
npm run build
# Deploy to Vercel
vercel --prod

πŸ”§ Backend Deployment (Render/Railway)

Using Render

  1. Connect your GitHub repository to Render
  2. Set environment variables in Render dashboard
  3. Deploy with automatic builds on push

Using Railway

# Install Railway CLI
npm install -g @railway/cli

# Login and deploy
railway login
railway link
railway up

πŸ—„οΈ Database Deployment

PostgreSQL on Render

  1. Create a PostgreSQL service on Render
  2. Copy the connection string
  3. Update your environment variables

Supabase (Alternative)

  1. Create a project on Supabase
  2. Get your connection string
  3. Run migrations if needed

πŸ› οΈ Development Guidelines

πŸ“ Code Style

  • Use TypeScript for all new code
  • Follow ESLint and Prettier configurations
  • Write meaningful commit messages
  • Add JSDoc comments for functions
  • Use semantic HTML and accessible components

πŸ§ͺ Testing

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Run E2E tests
npm run test:e2e

πŸ” Code Quality

# Lint code
npm run lint

# Fix linting issues
npm run lint:fix

# Format code
npm run format

# Type check
npm run type-check

πŸ› Troubleshooting

Common Issues

Database Connection Issues

# Check PostgreSQL is running
pg_isready

# Reset database
dropdb opengeek_community
createdb opengeek_community

Port Already in Use

# Kill process on port 3000
npx kill-port 3000

# Kill process on port 5000
npx kill-port 5000

Clerk Authentication Issues

  1. Verify your Clerk keys in environment files
  2. Check if you're using the correct environment (dev/prod)
  3. Ensure your domain is added to Clerk dashboard

Build Errors

# Clear Next.js cache
rm -rf .next

# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm install

πŸ†˜ Getting Help

If you encounter issues:

  1. Check the Issues - Someone might have faced the same problem
  2. Join our Discord - Get real-time help from the community
  3. Create a new issue - Provide detailed information about your problem

🀝 Contributing

We welcome contributions from developers of all skill levels! Here's how you can contribute:

πŸš€ Quick Contribution Guide

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch
    git checkout -b feature/amazing-feature
  3. πŸ’» Make your changes
  4. βœ… Test your changes
    npm test
    npm run lint
  5. πŸ“ Commit your changes
    git commit -m "Add amazing feature"
  6. πŸš€ Push to your branch
    git push origin feature/amazing-feature
  7. πŸ”„ Open a Pull Request

🎯 Contribution Areas

Area Description Good for
πŸ› Bug Fixes Fix existing issues and bugs Beginners
✨ New Features Add new functionality Intermediate
πŸ“š Documentation Improve docs and guides All levels
🎨 UI/UX Enhance user interface Designers
⚑ Performance Optimize code and performance Advanced
πŸ§ͺ Testing Add tests and improve coverage All levels

πŸ“‹ Contribution Guidelines

  • Follow the code style - Use ESLint and Prettier
  • Write tests - Add tests for new features
  • Update documentation - Keep docs up to date
  • Be respectful - Follow our code of conduct
  • Start small - Begin with small contributions

🌟 Community & Support

πŸ’¬ Join Our Community

🎯 What We Offer

  • πŸš€ Real Projects - Work on projects that matter
  • πŸ‘₯ Mentorship - Learn from experienced developers
  • πŸ’Ό Opportunities - Access to internships and jobs
  • πŸ† Recognition - Get recognized for your contributions
  • πŸ“š Learning - Continuous skill development
  • 🀝 Networking - Connect with like-minded developers

πŸ† Recognition

Contributors get:

  • 🌟 GitHub profile recognition
  • πŸ… Community badges and achievements
  • πŸ“œ Certificates for significant contributions
  • πŸ’Ό Job and internship referrals
  • 🎀 Speaking opportunities at events

πŸ“Š Project Stats

GitHub repo size GitHub language count GitHub top language GitHub last commit GitHub issues GitHub pull requests


πŸ“„ License

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

🀝 What this means:

  • βœ… Commercial use - Use in commercial projects
  • βœ… Modification - Modify the code as needed
  • βœ… Distribution - Share and distribute freely
  • βœ… Private use - Use in private projects
  • ❗ Attribution required - Credit the original authors

πŸ™ Acknowledgments

Special thanks to:

  • πŸŽ“ Student Community - For continuous feedback and support
  • πŸ‘¨β€πŸ’» Open Source Contributors - For making this project better
  • 🏒 Partner Organizations - For providing opportunities
  • πŸ› οΈ Technology Partners - Clerk, Vercel, Render, and others

πŸ’ Made with Love

Built by students, for students πŸŽ“

"We don't just code for placements, we code for purpose" ✨


⭐ Star this repo if you find it helpful!

🌟 Star on GitHub β€’ 🍴 Fork β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

About

A tech community

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •