Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hoppula/refire-forum
Serverless discussion forum built with React, Redux and Firebase
https://github.com/hoppula/refire-forum
board discussion-board firebase forum react realtime redux thread
Last synced: 1 day ago
JSON representation
Serverless discussion forum built with React, Redux and Firebase
- Host: GitHub
- URL: https://github.com/hoppula/refire-forum
- Owner: hoppula
- Created: 2016-03-08T15:39:06.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-03-11T14:10:11.000Z (over 5 years ago)
- Last Synced: 2024-05-16T01:03:56.535Z (about 2 months ago)
- Topics: board, discussion-board, firebase, forum, react, realtime, redux, thread
- Language: JavaScript
- Size: 125 KB
- Stars: 246
- Watchers: 14
- Forks: 56
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Security: security-rules.bolt
Lists
- awesome-stars - hoppula/refire-forum - Serverless discussion forum built with React, Redux and Firebase (JavaScript)
README
# refire-forum
Serverless discussion forum built with React, Redux and Firebase using [refire](https://github.com/hoppula/refire) and [refire-app](https://github.com/hoppula/refire-app).
Base UI components are from excellent [Elemental UI](http://elemental-ui.com/).
## Live demo
[https://refire.firebaseapp.com](https://refire.firebaseapp.com)
## Features
* Categories, boards and threads
* Paging for boards and threads
* Quoting when replying to posts
* Thread and Post previews
* Markdown support
* Emoji support using `:emoji:` syntax :fire:
* User profile pages
* Login with Google, Facebook, Github & Twitter accounts
* Admin tools (delete threads & single posts, lock/unlock threads)
* CSS-in-JS styled components, fully themeable
* Dark & light color themes
* Upvoting single posts
* Users can edit their own posts## Roadmap
* Allowing boards and threads to be bookmarked properly
* Search using redux-search
* Image attachment upload to Firebase
* Allowing users to edit their own thread titles
* Single post linking
* Show list of available emojis
* Sticky threads
* Thread and post tagging
* Notifications
* Reactions to posts with emojis
* Improved admin section
* Moderating
* User editable theme## Deploying your own instance
1. Create your new app in [Firebase dashboard](https://console.firebase.google.com/)
2. Copy and paste `apiKey` from your Firebase app console's `Overview > Add Firebase to your web app` to `src/config.js`
3. Enable `Sign-in providers` you want to use in your Firebase app console's `Authentication > Sign-in method` settings
4. Change `projects.default` value to your app name in `.firebaserc`
5. Run `npm install` and `npm run build`
6. Run `npm run login` to login to Firebase
7. Run `npm run bootstrap` to copy the initial data structure to Firebase
8. Run `npm run deploy` to deploy the app and security rules to Firebase
## Running locally
`npm start` will start the development server on `localhost:4000`
## Adding admin users
Create `adminUsers` path in your Firebase and set your admin user's `uid` as key and `true` as value:
```
"adminUsers": {
"google:123456789": true
}
```## Customizing settings
You can edit default paging settings by changing `settings/BOARD_PAGE_SIZE`, `settings/THREAD_PAGE_SIZE` and `settings/THREAD_PAGE_LIMIT`.
You can configure date format by changing `settings/DATE_FORMAT`.
## Custom forum name
Export `siteName` in `./src/config.js`.
```js
export const siteName = "My forum"
```## Security rules
Firebase security rules are defined in `security-rules.bolt`.
Use `npm run build:rules` to generate `security-rules.json` after making changes.
Use `npm run deploy:rules` to deploy security rules.
## License
MIT