A self-hosted event management tool for nonprofits
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
renovate[bot] 5a570ec605
fix(deps): update dependency react-datepicker to v4.9.0 (#2313)
11 hours ago
.github chore: DOCKER_REPOSITORY -> DOCKER_NAMESPACE (#2281) 5 days ago
.husky chore(deps): update dependency husky to v7 (#654) 2 years ago
client fix(deps): update dependency react-datepicker to v4.9.0 (#2313) 11 hours ago
common fix: make users-view just an instance permission again (#2268) 5 days ago
cypress fix: tidy up some wording on the chapter page (#2300) 3 days ago
scripts chore: add migration check to CI (#1820) 3 months ago
server fix: admined_chapters order (#2302) 3 days ago
.all-contributorsrc docs: add atosh502 as a contributor for code (#2255) 1 week ago
.dockerignore feat: create optimized production containers (#1229) 7 months ago
.env.example feat: add ses mail service (#2186) 2 weeks ago
.eslintignore refactor: always define before use (#1714) 4 months ago
.eslintrc.json refactor: always define before use (#1714) 4 months ago
.gitignore refactor: separate init and seed (#1808) 3 months ago
.gitpod.dockerfile fix: netcat on gitpod (#1889) 3 months ago
.gitpod.yml feat: change gitpod 3000 port to notify onOpen (#2174) 4 weeks ago
.graphqlconfig Authentication (#583) 2 years ago
.lintstagedrc.js chore: eslint during lint-staged (#1089) 7 months ago
.nvmrc chore(deps): update node.js (#2178) 3 weeks ago
.prettierignore remove user chapter, replace with user chapter role (#361) 3 years ago
.prettierrc.json Change from prettier.js -> prettier.json (#399) 2 years ago
CODE_OF_CONDUCT.md feat(docs): Documentation Overhaul (#66) 3 years ago
CONTRIBUTING.md feat: mention the command that creates seed.js (#2033) 2 months ago
LICENSE docs: update copyright years (#2157) 4 weeks ago
README.md docs: add atosh502 as a contributor for code (#2255) 1 week ago
client.Dockerfile fix: allow NODE_ENV to be set to production (#2240) 2 weeks ago
cypress.config.ts test: RSVPing to invite only event (#2183) 3 weeks ago
docker-compose.ci.yml feat: update ci + prod compose files (#2239) 2 weeks ago
docker-compose.override.yml feat: update build pipeline (#2237) 2 weeks ago
docker-compose.production.yml fix: update production docker namespace (#2282) 5 days ago
docker-compose.yml feat: update build pipeline (#2237) 2 weeks ago
global-setup.js feat(client): enable tests (#631) 2 years ago
jest.config.js fix: ignore emitted .test.js files when testing (#1078) 8 months ago
package-lock.json fix(deps): update dependency react-datepicker to v4.9.0 (#2313) 11 hours ago
package.json chore(deps): update dependency eslint-plugin-react to v7.32.2 (#2309) 1 day ago
renovate.json fix: extend the fcc renovate config (#1101) 7 months ago
schema.graphql fix: video_url to streaming_ url for Events (#766) 1 year ago
server.Dockerfile chore(deps): update node.js (#2178) 3 weeks ago
tsconfig.test.json feat: redact secrets (#1860) 3 months ago

README.md

Welcome to Chapter

All Contributors Setup Automated

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 deployed to the cloud with a one-click and then configured by the owner. 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.

All of an organization's user data will remain under their control.

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 the Chapter application, managed by an organization. a Docker container running on a web host
organization a non-profit with multiple chapters Women Who Code at the sub-domain: chapter.womenwhocode.org
chapter a container for events and users Women Who Code - New York City
event a meeting with a specific location and time to which users can RSVP Coffee And Code - BistroOne, New York City, NY - April 9, 2020
role a named definition of permissions to be attached to users for the purpose of granting authorization Owner, Adminstrator, Organizer, Member
user an authenticated user who is authorized based on their role(s) Sally Gold - SallyG@example.com
visitor an non-authenticated web browser session with view-only access to public content Anonymous Web Browser Client
owner the role of a user who can configure the Chapter application instance and manage administrators for an entire organization Women Who Code - Global IT
administrator the role of a user who can setup and manage chapters and organizers for an organization Women Who Code - European Administrator
organizer (not MVP) the role of a user who can manage a chapter's events, RSVPs, communications, and members Women Who Code - Edinburgh, Local Organizer
member the role of a user who can follow and receive notifications from a chapter and RSVP to events Women Who Code - Edinburgh, Local Member

Tech Stack

We are using the following tools:

For more information and a guide to working on features, go to the contributing docs.

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.

UI / UX / Design References

Contributing

License

Copyright (c) 2019-2023 freeCodeCamp.org

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

Contributors ✨

Thanks goes to these wonderful volunteers (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

📖
Aryan J
Aryan J

💻
Ashraf Nazar
Ashraf Nazar

📖
Vamsi Settypalli
Vamsi Settypalli

📖
sushmeet sunger
sushmeet sunger

📖
Paul Gamble
Paul Gamble

📖
Katie Noland
Katie Noland

🐛 💻
André Jaenisch
André Jaenisch

💻 🎨
tomnoland
tomnoland

🚇
Patrick San Juan
Patrick San Juan

💻
Tyler Williams
Tyler Williams

🚇
Oliver Eyton-Williams
Oliver Eyton-Williams

🚇 📖 💻 🚧 ⚠️ 🐛
Naomi Carrigan
Naomi Carrigan

📖 🚇 💻
Joe Devlin
Joe Devlin

🐛 📖 ⚠️
Rahul Gupta
Rahul Gupta

🐛
Ravichandra
Ravichandra

💻
Ahmad Abdolsaheb
Ahmad Abdolsaheb

💻
Krzysztof G.
Krzysztof G.

💻
Ismail Tlemcani
Ismail Tlemcani

💻
Muhammed Mustafa
Muhammed Mustafa

💻
Niraj Nandish
Niraj Nandish

💻
Christopher Ehrlich
Christopher Ehrlich

🚇 ⚠️ 💻
Moshe
Moshe

💻
Sirasit Thitirattanakorn
Sirasit Thitirattanakorn

🎨
Awais Ahmed
Awais Ahmed

💻
Nitya Pasrija
Nitya Pasrija

💻
Jon@1599
Jon@1599

💻
Omkar Ghag
Omkar Ghag

💻
Jait Jacob
Jait Jacob

💻
Suresh Koochana
Suresh Koochana

💻
auchynnikau
auchynnikau

💻 👀
nwernink
nwernink

💻
Bryan Moore
Bryan Moore

💻
Zameel Hassan
Zameel Hassan

💻
spham67
spham67

💻
Daminda Dinesh W Imaduwa Gamage
Daminda Dinesh W Imaduwa Gamage

💻
Aashutosh Poudel
Aashutosh Poudel

💻

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