OpenPlanner
A website to
- schedule accepted talks from ConferenceHall: pick date & time
- talks and speakers:
- manually add talks and speakers
- pick specific talks from ConferenceHall afterward
- edit talk or speaker, add profil picture, company logo, without editing data from ConferenceHall
- a schedule calendar to arrange talks and duration
- additional fields:
- categories and formats for sessions
- private notes for speaker, email, phone
- tracks / rooms
- manage sponsors & categories
- FAQ with admin and public or hidden pages
- API & webhooks
Dev guidelines
Project use:
- TypeScript everywhere
- Google Firestore (native) database
- React
- Firebase Hosting & functions
Core concepts:
- write clear and readable codes without too much abstractions to be read by as many as possible.
- use any library necessary to speed up devs BUT
- try to minimize bundle size at all cost: prefer lightweight dependencies rather than big one, prefer tree-shaking js libs
- have fun!
React guidelines:
Getting started
Requirements
- Two firebase projects. One for
open planner
and the other for conference hall
.
- Node.js 20+
- Bun.js as a build tool
Installation
- Create a
.env
with .env.example
as a template.
- Create a web app in your firebase project for
conference hall
and open planner
. then copy the config and fill .env
with it.
- Use bun.sh to install dependencies and build the project:
bun install
Inside OpenPlanner's firebase project:
- Enable Authentication with email/pwd in console.firebase.google.com
- In the Authentication parameters, "User actions", disable the "Protection against enumeration of e-mail addresses (recommended)" option
- Enable Storage, with rules in test or prod (whatever)
- Set the hosting config for the website using the firebase CLI:
firebase target:apply hosting conferencecenterr dist
- Set the hosting config for the API (swagger)
firebase target:apply hosting apiopenplanner api-swagger
Development
In order to run the project locally, you need to run the following commands:
bun install # install dependencies
bun start # start the dev server
Enjoy 🚀
Scripts
The repo contain few scripts useful for: