Skip to content

A self-hosted event management tool for nonprofits

License

Notifications You must be signed in to change notification settings

RockyKev/chapter

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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 organization can host an instance of Chapter under a sub-domain of your website, such as 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.

Our Vision statement provides more details on the reasons for Chapter.

Terminology

To better communicate and more easily build an API and UI, the current contributors have decided on a collection of terminology to clarify discussions surrounding the Chapter project:

Term Definition Example
instance a web server deployment of this Chapter application, managed by an organization. none
organization a non-profit with multiple chapters Women Who Code at the sub-domain: chapter.womenwhocode.org
chapter a container for events, with a description and subscribers, and one or more admins who can manage it Women Who Code New York City
event a single meetup that users can RSVP to, has a specific location and time, and has organizers Coffee And Code - BistroOne, New York City, NY - April 9, 2020
user a person who has signed up and been authorized as a subscriber to a chapter Sally Gold - [email protected]

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

If needed, set up environment variables under 'app -> environment' in the docker-compose.yml file.

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

Additional DB docs can be found in server/docs/README.md

Testing

Run tests

npm run test

Run tests in watch mode

npm run test:watch

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

Schema

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

a diagram illustrating the proposed schema for Chapter

created with DBeaver.io

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 conversations and user stories using the "Roadmap" tag.

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

πŸ’»
Edward Weymouth
Edward Weymouth

πŸ“–

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

About

A self-hosted event management tool for nonprofits

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 87.6%
  • TSQL 10.1%
  • JavaScript 2.3%