Git Product home page Git Product logo

cpinitiative's Introduction

Competitive Programming Initiative

We promote competitive programming among students through resources, outreach, classes, and contests.

Thanks to Vercel for providing free hosting & continuous deployment!

Development Environment Setup

Instructions (for volunteer hours -- not necessarily needed for other stuff)

  1. If not done already, clone the repository cpinitiative/cpinitiative and open up the folder.

  2. At the root directory, add a file .env, which will contain the environment configuration for the volunteer-hours. An example .env file will look like

    GOOGLE_CLIENT_ID="....apps.googleusercontent.com"
    GOOGLE_CLIENT_SECRET="asdkjflasdjfklas"
    NEXTAUTH_URL="http://localhost:3000"
    SHEETS_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----..."
    SHEETS_PRIVATE_KEY_ID="1298301asfa98sf09ac0291023"
    FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----..."
    ENCRYPTION_KEY="asdjkflajsdflkjas;ldjfa"
    MJ_APIKEY_PUBLIC="mailjet api key public"
    MJ_APIKEY_PRIVATE=""
    PAYPAL_API_SECRET="ddd"
    MAILGUN_API_KEY=""

    Here's how to get the following keys:

    • Google Sheets: https://developers.google.com/sheets/api/guides/authorizing#APIKey
    • NEXT_AUTH_URL: choose the address of deployment
    • FIREBASE_PRIVATE_KEY -- I don't think this is even needed??
    • ENCRYPTION_KEY -- ask Nathan (or modify cryptography file), used to decrypt firebase key on vercel
    • MJ_APIKEY_PUBLIC/PRIVATE -- ask Nathan, only needed for newsletter
    • MAILCHIMP_API_KEY -- ask Nathan, only needed for class registration system
    • PAYPAL_API_SECRET -- ask Nathan, only needed for class registration system
  3. Using the correct configuration file, go into SHEETS_API_CREDS inconfig.ts and make sure the credential object matches your Google Sheet configuration that you retrieved in the previous step.

  4. Acquire firebase credentials (or setup emulator), and make sure to replace the configuration in the firebaseAdmin.initializeApp in firebase.ts with the correct configuration.

  5. To navigate to the volunteer hours page after running yarn dev, you can go to localhost:3000/view-hours. Then, it should be able to test.

  6. Make sure to add access to the sheet in mind through Google Sheets itself (add the service account email as an editor in the sheet)

Here is a sample entry in the table, for reference, which can be called with the google-spreadsheet node package, :

Timestamp What is your name? What is your email address? List any PR's that you reviewed or submitted this week. How many hours did you spend on the USACO Guide this week? Enter only a number. (Optional, only if you want volunteer hours) Anything else you want to tell us? (Optional)
2021-10-23T23:18:42.653Z Someone [email protected] I worked on pull requests and reviewed things. 4 Yes, I made some stuff.

cpinitiative's People

Contributors

aakashyap1 avatar abdurrafay01 avatar abheekda1 avatar ady00 avatar akshatsinghania avatar bqi343 avatar caoash avatar chenhongqiao avatar cirex-web avatar cskitty avatar dongliu0426 avatar evang264 avatar fury-101 avatar jasonappah avatar jeffreymeng avatar jessechoe10 avatar maggie-j-liu avatar mjh316 avatar nathangong avatar nikita-go avatar nwatx avatar ocmelody avatar realmyth21 avatar ryanchou-dev avatar shaubby avatar shaymor avatar thecodingwizard avatar truashamu avatar vinceyou1 avatar zhao-stanley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cpinitiative's Issues

Add different questions for different roles in the volunteer hours form

Right now, the volunteer hours form only has 1 question for everyone. We would like to modify this so that volunteers can select their role from a list, and the form will change to show the correct questions for that role. The answers can be combined into one box when submitted to the google sheet, or split into multiple cells, whatever is easiest.

Reference for setting up volunteer hours: README_VOLUNTEER_HOURS.md

Add Competitive Programming for Girls page

add a new page joincpi.org/cpg that's basically https://joincpi.org/clubs but with this information:

Competitive Programming for Girls

The Competitive Programming Girls (CPG) is a branch of CPI dedicated to creating a shared environment for female and non-binary coders to talk to each other, attend workshops, and understand each others' experiences. Subscribe to get notified about workshops and new events.

Workshops
Listen to inspiring workshops from our guest speakers, women and non-binary role models in STEM.

Community
Join our discord community to meet, code, and chat with other female and non-binary coders!

(Public) Club Directory

list club name email location website?

also links to contests if they host

If there will be CPI contests could ask each club to propose a few problems :)

404 page

current 404 page is the vercel 404 page

Add Inter-Club Competition Page

Add a page to joincpi.org like joincpi.org/competition for the inter-club competition. Content:

2022 CPI Inter-Club Competition
November 12th, 2022 from 12pm - 4pm PT

Introducing the 2022 CPI Inter-Club Competition! This is an opportunity for your club to compete against other CPI member clubs from across the world, meet people from other clubs, and win prizes and prestige for your club!

Format
Division 2: Beginner - low silver level
Division 1: Silver - Gold level

Each division will consist of 10 problems.

You can enter as an individual or as a team for your club, but not both at the same time.

Club Teams

  • 5 competitors max per team
  • Clubs can send any number of teams to represent them

Individual

  • Compete as an individual
  • Separate prize pool than the clubs

Prizes

Clubs
1st Place in Div. 1 or 2

  • Win a pizza party for your club! Fully paid for by CPI.

Individual
1st Place Div. 1 or 2

  • $50 gift card

Questions? Ping Pranav#7895 in the CPI discord!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.