A Proof of Concept real-time single page application based on React and (Re)flux to discover best practices regarding a multitude of use cases. Contains a simple server with in-memory database in ./server
.
Demo on Heroku
(Automatically deployed from this repository on travis build)
- Run
$ npm install
in the ./server directory - Start the server in ./server using
$ node src/server.js
. Should open a port on 8080. - Navigate your browser to http://localhost:8080.
- [optional] Install gulp globally using
npm install -g gulp
- Run
$ npm install
in the base directory - Start the server in ./server using
$ node src/server.js
. Should open a port on 8080. - Run
$ gulp
in the base directory. This will watch for file changes and build when necessary. - Navigate your browser to http://localhost:8080; will reload on client changes.
Tested using npm 2.1.0 and node 0.10.33
- Discovery
-
Proof of concept <
- Refactoring
- Stabilizing
Create a more advanced example (w.r.t. your average TODO app) of creating a SPA using ReactJS. Initially as a personal exercise to go through the mud once while hoping to share new insights gained during the process and discuss various approaches.
This will be by no means a production ready application. Objectives and goals are subject to change.
- Find sensible approaches to using reactjs with (re)flux
- Scalable solutions (both in size and regarding developers)
- Isomorphic application
- Tests (unit, integration and functional) for all essential components
- Build methods
- Realtime connections
- File/folder layout
- Load modules on demand
- SEO
- Accessibility
- User login and registration
- Forum-like discussions
- Realtime connections
- Stackoverflow-like questions
- Chat
- Updates
- Guest
- Can view public pages
- Can login
- Can create account
- User
- Can view restricted pages
- Can create questions, discussions and comments.
- Can delete own comments
- Moderator
- Can edit/delete questions, discussions and comments from other users
- Administrator
- Can access administrative area
- Can list/disable/remove users
Home page
+---------------------------------------------------------------------------+
| Logo Account Updates(5) |
| +----------+ +-----------+ +-------------+ +-------------+ +-----------+ |
| | Home | | Questions | | Discussions | | About | | Chat | |
| +----------+ +-----------+ +-------------+ +-------------+ +-----------+ |
| |
+---------------------------------------------------------------------------+
| Homepage |
| |
| List of updates |
| |
+---------------------------------------------------------------------------+
|(c) notice |
+---------------------------------------------------------------------------+
[06-jan-14] Added demo app to heroku
[01-dec-14] Improving isomorphic rendering
[30-nov-14] Isomorphic app support
[24-nov-14] Sessions (login/logout/profile); html5 puhsState; single server
[22-nov-14] Initial version