Skip to content
A self-hosted event management tool for nonprofits
TypeScript TSQL JavaScript
Branch: master
Clone or download
allcontributors and allella docs: add Shub1427 as a contributor (#256)
* docs: update README.md

* docs: update .all-contributorsrc
Latest commit 0ed0d16 Nov 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github fix(ci workflow): add lint stage (#135) Oct 24, 2019
api Added category to the schemas closes #71 Oct 18, 2019
client feat(sponsors): add component for adding a sponsor to an event (#140) Nov 17, 2019
config Initialize sequelize (#120) Nov 6, 2019
data Update diagram (#129) Oct 22, 2019
docs docs: fix typo/grammar in how-to-open-a-pull-request.md (#115) Oct 21, 2019
pages feat(sponsors): add component for adding a sponsor to an event (#140) Nov 17, 2019
server Initialize sequelize (#120) Nov 6, 2019
styles Nik john/add material ui ssr (#158) Nov 1, 2019
types add data models typescript interfaces (#138) Oct 25, 2019
.all-contributorsrc docs: add Shub1427 as a contributor (#256) Nov 19, 2019
.babelrc Add styled-components, config Oct 22, 2019
.eslintignore fix next config syntax and linting (#118) Oct 21, 2019
.eslintrc.json feat(sponsors): add component for adding a sponsor to an event (#140) Nov 17, 2019
.gitignore add initial schema dll + diagram Oct 15, 2019
.nvmrc Add .nvmrc file for easier local development (#247) Nov 17, 2019
.sequelizerc Initialize sequelize (#120) Nov 6, 2019
CODE_OF_CONDUCT.md feat(docs): Documentation Overhaul (#66) Oct 17, 2019
CONTRIBUTING.md added welcome discord link (#170) Nov 13, 2019
LICENSE Initial commit Oct 14, 2019
README.md docs: add Shub1427 as a contributor (#256) Nov 19, 2019
docker-compose.yml Initialize sequelize (#120) Nov 6, 2019
next-env.d.ts App Skeleton using Next.js, Node/Express, React (#78) Oct 21, 2019
next.config.js fix next config syntax and linting (#118) Oct 21, 2019
nodemon.json App Skeleton using Next.js, Node/Express, React (#78) Oct 21, 2019
package-lock.json [Fix] High CPU usage by Typescript File Watch (#248) Nov 18, 2019
package.json [Fix] High CPU usage by Typescript File Watch (#248) Nov 18, 2019
tsconfig.json Nik john/add material ui ssr (#158) Nov 1, 2019
tsconfig.server.json App Skeleton using Next.js, Node/Express, React (#78) Oct 21, 2019

README.md

Welcome to Chapter

All Contributors

After several years of being dissatisfied with existing group event tools (Meetup, Facebook events) we decided to build our own.

This will be a self-hosted Docker container that you can one-click deploy to the cloud, then configure through an admin panel. No coding required.

Your nonprofit can sub-domain it to your website like chapter.sierraclub.org or chapter.womenwhocode.org.

You can use your own authentication tools. And all your user data will stay on your own server.

API Specification

We use Open API 3.0 to define the API structure of the application. You can see the full documentation with:

npm run speccy

Navigate to http://localhost:8001 to see API docs

Terminology

To better communicate and more easily build an API and UI, we've decided on a collection of terminology to discuss about the Chapter project in a clear way:

  • organization is a singular instance/deployment of Chapter. Example: Women Who Code at the domain chapter.womenwhocode.org.
  • chapter is a container for events, with a description and subscribers, and one or more admins who can manage it. Example: Women Who Code NYC.
  • event is a single meetup that users can RSVP to, has a specific location and time, and has organizers. Example: Women Who Code NYC - April 2019 Event.
  • user is a person who belongs to a chapter.

Tech Stack

We are planning to use the following tools:

A lot of people know these tools, and they're proven to work well at scale.

We will focus on building an open API first. Then developers can use the API to build their own mobile clients and voice interface clients.

Development Setup

Requirements: Node.js, Docker, internet access

Installing Node.js

Follow instructions for downloading and installing Node.js for your operating system from the official Node.js website.

Ensure you are installing Node 10 or greater and npm 6 or greater.

Installing Docker

See the Docker installation "Supported platforms" section and follow the instructions to download & install Docker Desktop for your operating system (or Docker CE for Linux).

You can find more resources on Docker here:

Starting the Development Server

Open up Terminal/Powershell/bash and navigate to the directory where you want the project to live.

Clone this repository:

git clone https://github.com/freeCodeCamp/chapter

Navigate to the newly cloned repo:

cd chapter

Install dependencies:

npm install

Ensure that Docker Desktop is up and running, then run the following command:

docker-compose up

Wait for the logs to show "server started on port 8000", then navigate to localhost:8000 to view the app.

The server will automatically restart anytime you save a .ts or .js file within the server/ directory.

You can run any command within the container by prefixing it with docker-compose exec app, e.g. docker-compose exec app npm install express

Testing

Run tests

npm run test

Run tests in watch mode

npm run test:watch

Schema

Expand to view a diagram illustrating the proposed schema for Chapter.

a diagram illustrating the proposed schema for Chapter

User Stories

MVP

The MVP user stories are shown in the MVP Project kanban / cards and as issues marked with "MVP".

Post-MVP

We are maintaining a list of post-MVP user stories.

Roadmap

The on-going project Roadmap conversation is regularly updated to reflect the overall progress and for higher-level discussions.

Quincy Larson is the project lead. FreeCodeCamp will start "dogfooding" the MVP with several of its local study groups.

Here's an out-dated example of an app with similar functionality: The freeCodeCamp Study Group Directory.

Contributing

License

Copyright © 2019 freeCodeCamp.org

The computer software is licensed under the BSD-3-Clause license.

Contributors

Thanks goes to these wonderful people (emoji key):

Quincy Larson
Quincy Larson

💻 📖 🤔
Tim Chen
Tim Chen

💻 🚧 🔧
nikjohn
nikjohn

💻 📖 🔧
Matteo Giaccone
Matteo Giaccone

📦 💻 📖
Ian Littman
Ian Littman

💻
Abrar Rauf
Abrar Rauf

📖
Jonathan Chhabra
Jonathan Chhabra

🚧 💻
Thomas Roest
Thomas Roest

💻
Scott Brenner
Scott Brenner

📖
Jim Ciallella
Jim Ciallella

📖
Joel Rozen
Joel Rozen

💻
yitzhak-bloy
yitzhak-bloy

📖
Rob Bertram
Rob Bertram

💻
Fran Zekan
Fran Zekan

💻 🔧
Jesuloba Egunjobi
Jesuloba Egunjobi

📦
Lakshmipriya
Lakshmipriya

📖
Ronald van der Bergh
Ronald van der Bergh

📖
Rodolfo Mendes
Rodolfo Mendes

📖
Chris Gonzalez
Chris Gonzalez

📖
Gonzalo Gras Cantou
Gonzalo Gras Cantou

📖
Vivek Agrawal
Vivek Agrawal

📖 🔧 🎨
Kognise
Kognise

💻
Wendel Nascimento
Wendel Nascimento

💻
Praveen Durairaju
Praveen Durairaju

💻
Shangeeth Sivan
Shangeeth Sivan

📖
Conor Broderick
Conor Broderick

💻
PrestonElliott
PrestonElliott

📖 💻
VimalRaj Selvam
VimalRaj Selvam

💻
Franco Correa
Franco Correa

💻
Manoel
Manoel

📖
Dillon Mulroy
Dillon Mulroy

📖
Mirza Chilman
Mirza Chilman

📖
Cecilia
Cecilia

🤔
Sean
Sean

🎨
Madalena
Madalena

🎨
Ariel Barboza
Ariel Barboza

📖
Jonathan Seubert
Jonathan Seubert

🎨 📖
Juli Odomo
Juli Odomo

🎨
Vaibhav Singh
Vaibhav Singh

💻
Subroto
Subroto

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

You can’t perform that action at this time.