Skip to content

Latest commit

History

207 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Dev Weekends Logo

Dev Weekends Web Platform

Your Gateway to Becoming a Better Software Engineer

LicenseIssuesPull RequestsPRs Welcome

AboutFeaturesTech StackGetting StartedProject StructureContributingCommunityLicense


📖 About

The Dev Weekends Web Platform powers the public website and internal portals for the Dev Weekends community – a thriving tech community focused on mentorship in software engineering, DevOps, cloud computing, and machine learning/AI.

This platform serves:

  • Public visitors – Explore sessions, mentors, resources, and community events
  • Mentors – Manage mentees, track progress, and share resources
  • Ambassadors – Coordinate community activities and outreach
  • Admins – Oversee the entire platform, manage users, sessions, and content

✨ Features

  • 🎓 Mentorship Program – Connect mentors with mentees for personalized guidance
  • 📅 Session Management – Schedule and manage community learning sessions
  • 👥 Community Portal – Showcase mentors, ambassadors, and community members
  • 📚 Resource Library – Curated learning resources for the community
  • 🎯 MindMaster – Interactive challenges and learning activities
  • 🔐 Role-Based Access – Secure portals for Admin, Mentor, and Ambassador roles
  • 📊 Activity Tracking – Monitor community engagement and progress
  • 🌙 Dark/Light Mode – Beautiful UI with theme support

🛠 Tech Stack

CategoryTechnology
FrameworkNext.js 15 (App Router)
LanguageTypeScript
StylingTailwind CSS
UI ComponentsRadix UI
DatabaseMongoDB via Mongoose
AuthenticationCustom JWT-based auth
Media StorageCloudinary
AnalyticsGoogle Analytics

🚀 Getting Started

Prerequisites

  • Node.js 20+ (LTS recommended)
  • npm (or yarn/pnpm/bun)
  • MongoDB instance (local or MongoDB Atlas)
  • Git

Installation

  1. Fork the repository (for contributors)

    Click the "Fork" button at the top right of this page.

  2. Clone the repository

    git clone https://github.com/YOUR_USERNAME/web-platform.git
    cd web-platform
  3. Install dependencies

    npm install
  4. Configure environment variables

    cp .env.example .env.local

    Edit .env.local and fill in your values. See Environment Variables for details.

  5. Start the development server

    npm run dev
  6. Open your browser

    Navigate to http://localhost:3000

Environment Variables

Create a .env.local file based on .env.example:

VariableRequiredDescription
MONGODB_URIMongoDB connection string
JWT_SECRETSecret key for JWT token signing
ADMIN_ACCESS_CODEAccess code for admin authentication
MENTOR_ACCESS_CODEAccess code for mentor authentication
AMBASSADOR_ACCESS_CODEAccess code for ambassador authentication
NEXT_PUBLIC_GA_IDGoogle Analytics measurement ID
CLOUDINARY_CLOUD_NAMECloudinary cloud name for media uploads
CLOUDINARY_API_KEYCloudinary API key
CLOUDINARY_API_SECRETCloudinary API secret

⚠️Security Note: Never commit your .env.local file or expose secrets in your code.

Available Scripts

ScriptDescription
npm run devStart development server with Turbopack
npm run buildBuild for production
npm startStart production server
npm run lintRun ESLint

📁 Project Structure

web-platform/
├── app/ # Next.js App Router
│ ├── (public pages)/ # Public pages (home, about, sessions, etc.)
│ ├── admin/ # Admin dashboard & management
│ ├── ambassador/ # Ambassador portal
│ ├── mentor/ # Mentor portal
│ ├── api/ # API routes
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── components/ # React components
│ ├── ui/ # Primitive UI components (Radix-based)
│ └── *.tsx # Feature components
├── lib/ # Shared utilities
│ ├── db.ts # MongoDB connection
│ ├── auth.ts # Authentication helpers
│ ├── jwt.ts # JWT utilities
│ └── utils.ts # General utilities
├── models/ # Mongoose models
├── public/ # Static assets
└── types/ # TypeScript type definitions

🤝 Contributing

We love contributions! Dev Weekends is built by the community, for the community.

Quick Start

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run linting: npm run lint
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Resources

Good First Issues

Looking for a place to start? Check out issues labeled good first issue – they're perfect for newcomers!

👥 Community

Join our vibrant community of developers, mentors, and tech enthusiasts!

🙏 Acknowledgments

A huge thank you to:

  • All our amazing mentors who volunteer their time
  • Our dedicated ambassadors who spread the word
  • Every community member who participates and contributes
  • All open source contributors who help improve this platform

📄 License

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


Made with ❤️ by the Dev Weekends community

About

Web Platform of Dev Weekends

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages