All Projects → pennlabs → penn-clubs

pennlabs / penn-clubs

Licence: MIT license
Official React-based website for Penn Labs' club directory and events listings.

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to penn-clubs

platform
API for the Penn Labs platform built using Django REST framework. Includes accounts engine, club directory, product listings, documentation etc.
Stars: ✭ 20 (-51.22%)
Mutual labels:  django-rest-framework, university-of-pennsylvania
Php Sse
A simple and efficient library implemented HTML5's server-sent events by PHP, is used to real-time push events from server to client, and easier than Websocket, instead of AJAX request.
Stars: ✭ 237 (+478.05%)
Mutual labels:  events
Event Registry Python
Python package for API access to news articles and events in the Event Registry
Stars: ✭ 179 (+336.59%)
Mutual labels:  events
Is Hotkey
Check whether a browser event matches a hotkey.
Stars: ✭ 211 (+414.63%)
Mutual labels:  events
Open Source Meetup Alternatives
Open-Source Alternatives to Meetup
Stars: ✭ 191 (+365.85%)
Mutual labels:  events
Mulog
μ/log is a micro-logging library that logs events and data, not words!
Stars: ✭ 222 (+441.46%)
Mutual labels:  events
Eztime
ezTime — pronounced "Easy Time" — is a very easy to use Arduino time and date library that provides NTP network time lookups, extensive timezone support, formatted time and date strings, user events, millisecond precision and more.
Stars: ✭ 173 (+321.95%)
Mutual labels:  events
micro-typed-events
The smallest, most convenient typesafe TS event emitter you'll ever need
Stars: ✭ 39 (-4.88%)
Mutual labels:  events
Cphalcon7
Dao7 - Web framework for PHP7.x,项目接洽 QQ 176013762
Stars: ✭ 237 (+478.05%)
Mutual labels:  events
Bliss
Blissful JavaScript
Stars: ✭ 2,352 (+5636.59%)
Mutual labels:  events
Luv
Cross-platform asynchronous I/O and system calls
Stars: ✭ 203 (+395.12%)
Mutual labels:  events
Library
This is a project of a library, driven by real business requirements. We use techniques strongly connected with Domain Driven Design, Behavior-Driven Development, Event Storming, User Story Mapping.
Stars: ✭ 2,685 (+6448.78%)
Mutual labels:  events
React Native Add Calendar Event
Create, view or edit events in react native using the standard iOS / Android dialogs
Stars: ✭ 225 (+448.78%)
Mutual labels:  events
Ember Native Dom Helpers
Test helpers for your integration tests that fire native events
Stars: ✭ 187 (+356.1%)
Mutual labels:  events
Watermill
Building event-driven applications the easy way in Go.
Stars: ✭ 3,504 (+8446.34%)
Mutual labels:  events
Bigben
BigBen - a generic, multi-tenant, time-based event scheduler and cron scheduling framework
Stars: ✭ 174 (+324.39%)
Mutual labels:  events
Pevents
Implementation of Win32 events for *nix platforms, built on top of pthreads.
Stars: ✭ 200 (+387.8%)
Mutual labels:  events
Php Mysql Replication
Pure PHP Implementation of MySQL replication protocol. This allow you to receive event like insert, update, delete with their data and raw SQL queries.
Stars: ✭ 213 (+419.51%)
Mutual labels:  events
docker eventer
A Docker container to notify about Docker events written in Python
Stars: ✭ 14 (-65.85%)
Mutual labels:  events
Cqrs Clean Eventual Consistency
CQRS, using Clean Architecture, multiple databases and Eventual Consistency
Stars: ✭ 247 (+502.44%)
Mutual labels:  events

Penn Clubs

Build and Deploy Coverage Status

Official React-based website for Penn Labs' club directory and events listings. The REST API written in Django for Penn Clubs infrastructure.

Installation

You will need to start both the backend and the frontend to do Penn Clubs development.

Questions? Check out our extended guide for FAQs for both Mac and Windows.

Backend

Running the backend requires Python 3.

In production, you will need to set the following environment variables:

  • NEXT_PUBLIC_SITE_NAME (optional, defaults to clubs)
  • SECRET_KEY
  • SENTRY_URL
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_STORAGE_BUCKET_NAME
  • LABS_REDIRECT_URI
  • LABS_CLIENT_ID (from Platform)
  • LABS_CLIENT_SECRET (from Platform)

To run the server, cd to the folder where you cloned penn-clubs. Then run:

  • cd backend

Setting up psycopg2 (this is necessary if you want to be able to modify dependencies, you can revisit later if not)

  • Mac
    • $ brew install postgresql
    • $ brew install openssl
    • $ brew unlink openssl && brew link openssl --force
    • $ echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
    • $ export LDFLAGS="-L/usr/local/opt/openssl@3/lib"
    • $ export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
  • Windows
    • $ apt-get install gcc python3-dev libpq-dev

Now, you can run

  • $ pipenv install to install Python dependencies. This may take a few minutes. Optionally include the --dev argument if you are installing locally for development. If you skipped installing psycopg2 earlier, you might see an error with locking -- this is expected!
  • $ pipenv shell
  • $ pre-commit install
  • $ ./manage.py migrate OR $ python3 manage.py migrate
  • $ ./manage.py populate OR $ python3 manage.py populate (in development, to populate the database with dummy data)
  • $ ./manage.py runserver OR $ python3 manage.py runserver

Frontend

Running the frontend requires Node.js and Yarn.

You will need to set the following environment variables on the frontend:

  • NEXT_PUBLIC_GOOGLE_API_KEY
  • NEXT_PUBLIC_SITE_NAME (Optional)
    • Specify clubs to show Penn Clubs and fyh to show Hub@Penn.
  1. Enter the frontend directory with a new terminal window. Don't kill your backend server!
  2. Install dependencies using yarn install in the project directory.
  3. Run application using yarn dev.
  4. Access application at http://localhost:3000.

Development

Click Login to log in as a test user. The ./manage.py populate command creates a test user for you with username bfranklin and password test. Go to /api/admin to login to this account.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].