public | ||
realtime | ||
sass | ||
src | ||
test | ||
test_support | ||
views | ||
.agignore | ||
.babelrc | ||
.buildpacks | ||
.codeclimate.yml | ||
.eslintignore | ||
.example-env | ||
.gitignore | ||
.nvmrc | ||
.travis.yml | ||
apiProxyMiddleware.js | ||
Metamaps.ServerData.js.erb | ||
package-lock.json | ||
package.json | ||
README.md | ||
server.js | ||
webpack.config.js | ||
webpack.test.config.js |
Make sure you're running a good up to date LTS version of node
Install all the dependencies
$ npm install
Make sure you have node-sass
installed
$ npm install -g node-sass
Make sure that you have a .env file setup. You can copy the .example-env
$ cp .example-env .env
Edit it however you need to.
Start up the nodejs server which serves the UI files, the socketio realtime server, and proxies requests to the API.
$ npm start
Build the css. If you're developing and writing css, make sure that it will rebuild the css when you make changes, by running the npm sass:watch
process and leaving it running.
$ npm run sass # to build the css once
$ npm run sass:watch # to watch it for more changes
Run the metamaps api in another terminal, on whichever port you configured in your .env file.
For now, make sure you are running on the add-user-route
branch of Metamaps, and that it's up to date with the latest on that branch
$ rails s -p 3001
open up http://localhost:3000 and start coding!
Checklist
-
Get the Import lightbox working, and not conflicting on screen
-
Handling CSRF
-
Fix images referenced in the JS
-
Figure out how authentication of requests from the frontend to the API works
-
Figure out how to combine the nodejs realtime server into server.js
-
Notifications: make sure loading states are working for popup and page
-
Request unreadNotificationCount
-
Request invite code
-
Request user object itself
-
Load the metacodes
-
move ImportDialog lightbox into main app
-
create topic form
-
Fork map lightbox / component
-
fix other places where metacode sets are used
-
make newtopic form load metacodes from users selected ones
-
create synapse form
-
replace old loader with react loader
-
ensure exports of maps work
-
Notifications: make sure notifications either look nice, or redirect
-
Notifications: pagination
-
Notifications: Request unreadNotificationCount
-
Notifications: CSS fixes related to 'controller-x' in body classes
-
Make sure loading state for explore maps pages work
-
Get actioncable working
-
lightboxes
-
About lightbox
-
Switch Metacodes lightbox / component
-
break up index.html into parts
-
Handle CSS metacode colors
-
Fix Request An Invite page
-
Make 'new map' action work
-
Modify the remaining rails templates into JSX templates
- notifications list
- notification page
- list metacodes
- new metacode
- edit metacode
- list metacode_sets
- new metacode set
- edit metacode set
- authorized apps
- registered apps
- authorize
- user passwords
-
Modify the RubyOnRails app to only serve JSON responses, no HTML pages anymore
-
Modify the frontend to request that data from the API which is necessary at first to load the page
- Load the metacode sets
To run the server as a daemon that will be re-run if it crashes, you can use the forever node package.
$ npm install -g forever
$ forever start server.js
To build the javascript file
$ npm run build