https://github.com/freeCodeCamp/chapter
A self-hosted event management tool for nonprofits
https://github.com/freeCodeCamp/chapter
Last synced: 7 months ago
JSON representation
A self-hosted event management tool for nonprofits
- Host: GitHub
- URL: https://github.com/freeCodeCamp/chapter
- Owner: freeCodeCamp
- License: bsd-3-clause
- Archived: true
- Created: 2019-10-14T21:04:32.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2023-06-08T14:53:19.000Z (over 2 years ago)
- Last Synced: 2025-01-18T20:36:32.582Z (10 months ago)
- Language: TypeScript
- Homepage:
- Size: 118 MB
- Stars: 1,923
- Watchers: 72
- Forks: 359
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- jimsghstars - freeCodeCamp/chapter - A self-hosted event management tool for nonprofits (TypeScript)
README
# Welcome to Chapter
[](#contributors-)
[](https://gitpod.io/#https://github.com/freeCodeCamp/chapter)
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](https://github.com/freeCodeCamp/chapter/wiki/Vision) 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](https://github.com/freeCodeCamp/chapter/), 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 attend | 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](https://github.com/freeCodeCamp/chapter/) _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_, attendees, 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 attend _events_ | Women Who Code - Edinburgh, Local Member |
## Tech Stack
We are using the following tools:
- [Node.js](https://nodejs.org) / [Apollo server](https://www.npmjs.com/package/apollo-server-express) - extendable graphql server
- [type-graphql](https://github.com/MichalLytek/type-graphql) - code first graphql schema definition library
- [Postgres](https://www.postgresql.org) with [Prisma](https://prisma.io/) - for fully type-safe queries
- [Next.js](https://nextjs.org/) - for both client and server-side rendering of the frontend (NextJS is based on [React](https://reactjs.org))
- [Apollo Client 3](https://www.apollographql.com/docs/react/)
- [TypeScript](https://www.typescriptlang.org/index.html#download-links)
- [Chakra UI](https://chakra-ui.com/) - simple, modular & accessible UI components for React
- Functional Components with [Hooks](https://reactjs.org/docs/hooks-intro.html)
- [Jest](https://jestjs.io/) - for writing unit tests.
- [Cypress](https://www.cypress.io/) - to check if specific actions are possible to perform in certain scenarios.
For more information and a guide to working on features, go to the [contributing docs](/CONTRIBUTING.md#adding-a-new-feature).
## User Stories
### MVP
The [MVP user stories are shown in the MVP Project](https://github.com/freeCodeCamp/chapter/projects/1) kanban / cards and as [issues marked with "MVP"](https://github.com/freeCodeCamp/chapter/labels/MVP).
### Post-MVP
We are maintaining a list of post-MVP conversations and user stories using the ["Roadmap" tag](https://github.com/freeCodeCamp/chapter/issues?utf8=%E2%9C%93&q=is%3Aopen+or+is%3Aclosed+label%3ARoadmap+).
Quincy Larson is the project lead. [freeCodeCamp](https://www.freecodecamp.org) will start "dogfooding" the MVP with several of its local study groups.
## UI / UX / Design References
- [Mockups](https://preview.uxpin.com/13c1d07f6dd731123612a8884eb4174459312ac5#/pages/138361235/simulate/sitemap) and earlier [_visitor_ views](https://www.figma.com/proto/q7DikyL3N0c4CUWxHNa97i/Chapter-Prototype?node-id=1%3A2&scaling=scale-down)
- [User Role Workflows](https://www.figma.com/file/ehgBfxoLKrlSZH0uftD6dA/Chapter-Trial?node-id=0%3A1)
- [UI / UX Issues](https://github.com/freeCodeCamp/chapter/issues?q=is%3Aopen+is%3Aissue+label%3AUI%2FUX)
## Contributing
- Please read the [contributing guidelines and steps needed to setup **_Chapter_** locally](CONTRIBUTING.md). We take you from local setup to submitting pull requests.
- [Join our chat](https://discord.gg/QbQd7BpaaH) to get connected and follow announcements.
## License
Copyright (c) 2019-2023 freeCodeCamp.org
The computer software is licensed under the [BSD-3-Clause](LICENSE) license.
## Contributors β¨
Thanks goes to these wonderful volunteers ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Quincy Larson
π» π π€

Tim Chen
π» π§ π§

nikjohn
π» π π§

Matteo Giaccone
π¦ π» π

Ian Littman
π»

Abrar Rauf
π

Jonathan Chhabra
π§ π»

Thomas Roest
π»

Scott Brenner
π π§

Jim Ciallella
π π π¬ π§

Joel Rozen
π»

yitzhak-bloy
π

Rob Bertram
π»

Fran Zekan
π» π§ π π β οΈ π π¬

Jesuloba Egunjobi
π¦

Lakshmipriya
π

Ronald van der Bergh
π

Rodolfo Mendes
π

Chris Gonzalez
π

Gonzalo Gras Cantou
π

Vivek Agrawal
π π§ π¨

Kognise
π»

Wendel Nascimento
π»

Praveen Durairaju
π»

Shangeeth Sivan
π

Conor Broderick
π»

PrestonElliott
π π»

VimalRaj Selvam
π»

Franco Correa
π»

Manoel
π

Dillon Mulroy
π

Mirza Chilman
π

Cecilia
π€

Sean
π¨

Madalena
π¨

Ariel Barboza
π

Jonathan Seubert
π¨ π

Juli Odomo
π¨

Vaibhav Singh
π»

Subroto
π»

Edward Weymouth
π

Aryan J
π»

Ashraf Nazar
π

Vamsi Settypalli
π

sushmeet sunger
π

Paul Gamble
π

Katie Noland
π π»

AndrΓ© Jaenisch
π» π¨

tomnoland
π

Patrick San Juan
π»

Tyler Williams
π

Oliver Eyton-Williams
π π π» π§ β οΈ π

Naomi Carrigan
π π π»

Joe Devlin
π π β οΈ

Rahul Gupta
π

Ravichandra
π»

Ahmad Abdolsaheb
π»

Krzysztof G.
π»

Ismail Tlemcani
π»

Muhammed Mustafa
π»

Niraj Nandish
π»

Christopher Ehrlich
π β οΈ π»

Moshe
π»

Sirasit Thitirattanakorn
π¨

Awais Ahmed
π»

Nitya Pasrija
π»

Jon@1599
π»

Omkar Ghag
π»

Jait Jacob
π»

Suresh Koochana
π»

auchynnikau
π» π

nwernink
π»

Bryan Moore
π»

Zameel Hassan
π»

spham67
π»

Daminda Dinesh W Imaduwa Gamage
π»

Aashutosh Poudel
π»

Diana Chu
π»

jamesrcramos
π»

Sneha
π»

randychilau
π»

ttran913
π»

MackenanDsouza
π»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!