Skip to content
A self-hosted event management tool for nonprofits
TypeScript TSQL JavaScript
Branch: master
Clone or download
allella Update README Terminology to define and split out admin vs organizer …
…terms (#313)

* Add admin and organizer as terminology on the readme. Update the Terminology table with more examples

* Add italics to terminiology words and reword some of the terminology descriptions

* Make terminology term column italics for visual consistency

* Fix typos and add clarity to the organizer role

* Distinguish between the Chapter application and a chapter entity by using quotes and a link to Chapter

* Tweak italics again for more clarity on the terminology
Latest commit e6f47e1 Jan 16, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add serverside testing (#139) Dec 11, 2019
api [WIP] fix(db, api): update database model & API schemas (#253) Dec 15, 2019
client Add first pass at header component (#300) Dec 24, 2019
data [WIP] fix(db, api): update database model & API schemas (#253) Dec 15, 2019
docs docs: fix typo/grammar in how-to-open-a-pull-request.md (#115) Oct 21, 2019
pages Add first pass at header component (#300) Dec 24, 2019
public Add first pass at header component (#300) Dec 24, 2019
server Namespace api to /api/v1/ (#310) Dec 25, 2019
styles Add first pass at header component (#300) Dec 24, 2019
types Added seeders for models (#307) Dec 24, 2019
.all-contributorsrc docs: add AryanJ-NYC as a contributor (#295) Dec 15, 2019
.babelrc Add styled-components, config Oct 22, 2019
.eslintignore Add Redux/Thunk with bare minimum setup (#166) Dec 5, 2019
.eslintrc.json Add Redux/Thunk with bare minimum setup (#166) Dec 5, 2019
.gitignore add initial schema dll + diagram Oct 15, 2019
.nvmrc Add .nvmrc file for easier local development (#247) Nov 17, 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 Update README Terminology to define and split out admin vs organizer … Jan 16, 2020
docker-compose.yml add serverside testing (#139) Dec 11, 2019
jest.config.js add serverside testing (#139) Dec 11, 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
ormconfig.json Add seed script (#292) Dec 15, 2019
package-lock.json Event CRUD API (#299) Dec 24, 2019
package.json Event CRUD API (#299) Dec 24, 2019
tsconfig.json Event CRUD API (#299) Dec 24, 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 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 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
administrator a role to manage the entire "Chapter" application instance for an organization Women Who Code - Global Chapter Administrator
organizer a role to manage a chapter's events, RSVPs, communications, and users Women Who Code - New York City, Local Organizer
user the role of a person who can follow and receive notifications from a chapter and RSVP to events Sally Gold - SallyG@example.com

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

💻 📖 🤔

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

💻

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

You can’t perform that action at this time.