A bulletin/forum page for Cupertino High School, built by Tinovation. Post are attached to a specific "bulletin" and users will only see posts from subscribed bulletins. Posts must be approved by an admin or a moderator for the relevant bulletin before it is published to the users. Posting privileges to bulletins can be restricted by configuring it to be private. Post searching is implemented.
Node.js
- Language used for implementing backendExpress.js
- Node.js web hosting frameworkBootstrap
- Frontend styling toolkitEJS
- JS templatorFirebase
- Development platform, used for its authentication service and realtime database
- Firebase Credentials
- Database URL
Client access to Firebase
must also be configured to the correct database. The Firebase realtime database will generate a config.json
file to be served.
npm install // Install necessary packages
npm dev // Development hosting, run with nodemon
npm start // Production Serve
categories: {
<category-name> : {
members: [email] | undefined, // Undefined if public
moderators: [email] | undefined, // Undefined if public
private: bool,
pin: <post-id> | undefined
}, ...
}
posts: {
<post-id>: {
approved: bool,
author: email,
authorName: username,
attachments: [url] | undefined,
category: string,
postTime: unix ms timestamp,
text: string,
title: string,
}, ...
}
users: {
<user-id>: {
admin: bool
categories: {
<category-name>: true
}
email: string
name: string
}, ...
}