Skip to content

The RHS Coding Club Website is a Next.js, TypeScript platform designed for students to participate in coding challenges, track progress, browse resources, and showcase projects. It features a dashboard, leaderboard, events calendar, GitHub integration, and an admin panel powered by Firebase. Built for learning, collaboration, and managing club.

License

Notifications You must be signed in to change notification settings

JashanMaan28/rhs-coding-club

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

85 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

RHS Coding Club Logo

RHS Coding Club Website

Welcome to the official repository for the Ripon High School's Coding Club website. This platform serves as the central hub for our members, featuring challenges, events, resources, and a showcase of student projects.

πŸš€ Overview

This website is designed to:

  • Connect Members: Provide a space for students to join, track their progress, and participate in club activities.
  • Showcase Work: Highlight student projects and achievements through a Hall of Fame and project gallery.
  • Manage Activities: Host coding challenges, schedule events, and manage club resources.
  • Gamify Learning: Implement a badge system and leaderboard to encourage participation and learning.

✨ Features

  • Home Page: Overview of the club, recent stats, and featured content.
  • Challenges: Interactive coding challenges for members to solve.
  • Events: Calendar and details of upcoming club meetings and workshops.
  • Projects: A gallery where members can showcase their personal or club projects.
  • Resources: Curated learning materials and bookmarks.
  • Blog: Articles and updates from the club.
  • Dashboard: User-specific area to track badges, progress, and settings.
  • Leaderboard: Rankings based on participation and challenge completion.
  • Admin Panel: Tools for club officers to manage content, users, and settings.
  • GitHub Integration: Link GitHub accounts for verification and automated badge awarding.

πŸ› οΈ Tech Stack

πŸ“‚ Project Structure

rhs-coding-club/
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/             # Next.js App Router pages and API routes
β”‚   β”‚   β”œβ”€β”€ api/         # Backend API endpoints
β”‚   β”‚   β”œβ”€β”€ (routes)/    # Page routes (about, blog, challenges, etc.)
β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ ui/          # Base UI components (buttons, inputs, etc.)
β”‚   β”‚   └── ...          # Feature-specific components
β”‚   β”œβ”€β”€ contexts/        # React Context providers (Auth, Settings, etc.)
β”‚   β”œβ”€β”€ hooks/           # Custom React hooks
β”‚   β”œβ”€β”€ lib/             # Utility functions and services
β”‚   β”‚   β”œβ”€β”€ firebase.ts  # Firebase client configuration
β”‚   β”‚   └── ...          # Other services (Brevo, GitHub, etc.)
└── ...config files      # Configuration files (Next.js, Tailwind, TS, etc.)

🏁 Getting Started

Prerequisites

  • Node.js (v18 or higher recommended)
  • npm, yarn, or pnpm

Installation

  1. Clone the repository:

    git clone https://github.com/JashanMaan28/rhs-coding-club.git
    cd rhs-coding-club
  2. Install dependencies:

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Set up Environment Variables: Create a .env file in the root directory and add the following variables. You will need a Firebase project and other service accounts.

      # Firebase Configuration
      NEXT_PUBLIC_FIREBASE_API_KEY=
      NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
      NEXT_PUBLIC_FIREBASE_PROJECT_ID=
      NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
      NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
      NEXT_PUBLIC_FIREBASE_APP_ID=
      NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
    
      # Brevo Configuration
      BREVO_API_KEY=
      BREVO_SENDER_EMAIL=
      BREVO_SENDER_NAME=
    
      # Site Configuration
      NEXT_PUBLIC_SITE_URL=http://localhost:3000
    
    
      # GitHub Organization Configuration
      # Replace 'your-github-org' with your actual GitHub organization name
      GITHUB_ORG_NAME=your-github-org
    
      # GitHub Personal Access Token with the following permissions:
      # - admin:org (for inviting users to organization)
      # - read:user (for reading user information)
      # Generate token at: https://github.com/settings/tokens/new
      GITHUB_TOKEN=your_github_personal_access_token_here
    
    
      # Firebase Admin SDK Configuration
      # These are needed for server-side authentication in API routes
      FIREBASE_PROJECT_ID=your-firebase-project-id
      FIREBASE_CLIENT_EMAIL=your-firebase-service-account-email
      FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nyour-private-key-here\n-----END PRIVATE KEY-----"
    
  4. Run the development server:

    npm run dev

    Open http://localhost:3000 with your browser to see the result.

🀝 How to Contribute

We welcome contributions from club members and the community! Please read our Contributing Guide for detailed instructions on how to get started.

Quick Start

  1. Fork the repository to your own GitHub account.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Push to your branch and open a Pull Request.

Coding Style

  • We use ESLint and Prettier.
  • Run npm run lint and npm run format before committing.

🀝 Code of Conduct

Please note that we have a Code of Conduct. Please follow it in all your interactions with the project.

πŸ›‘οΈ Security

For information on how to report security vulnerabilities, please see our Security Policy.

πŸ“„ License

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

πŸ™ Acknowledgments

About

The RHS Coding Club Website is a Next.js, TypeScript platform designed for students to participate in coding challenges, track progress, browse resources, and showcase projects. It features a dashboard, leaderboard, events calendar, GitHub integration, and an admin panel powered by Firebase. Built for learning, collaboration, and managing club.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •