npm install
npm start
A local version of mongoDB must be running.
Repository: octagonal/Geofeelings
Deployment is handled by Travis CI.
Username | Password |
---|---|
ikbeneendocent | test123 |
The MongoDB & Admin credentials will be given during the presentation.
- Consistently 60FPS
- Network load is reduced to a minimum by using very efficient MongoDB calls
Name | BE | FE | Task in team |
---|---|---|---|
Anthony Madhvani | Y | N | Backend, frontend |
In hours
Map view: *************************5.00
Timeline: ********************4.00
Authentication & authorization: ***************3.00
Statistics view: *************************5.00
Entry filtering: ********************4.00
Activity chat: *************************5.00
Map view: *************************10.00
Timeline: ********************8.00
Authentication & authorization: **********4.00
Statistics view: *************************10.00
Entry filtering: **********4.00
Activity chat: ***************6.00
This list is not exhaustive. Refer to /package.json
for every package used.
Name | Usage |
---|---|
Jade | Non-interactive views |
React | Stateful, interactive views |
Sentiment | Calculating sentiment |
Moment | Date calculations |
lodash | Throttling function calls, filtering & mapping the entry list |
d3 | Showing graphs |
Name | Why |
---|---|
qs | Parsing querystrings |
Passport | Helps with auth |
Node.js | Mandatory |
connect-flash | Flash important messages |
express-session | Manage sessions |
- Additional filtering
- Graphic the amount of tags
- Showing the trending tags
- JavaScript
Being used to strongly typed languages, coming to grips with JavaScripts dynamism was quite difficult at first. It requires a great deal of discipline to keep code structured since the compiler won't do it for you.
- React
React does not play along nicely with most "classic" UI libraries such as Jquery or Bootstrap.js, especially when those libraries update state as well. Some nasty hacks were required.
- Isomorphic UI
Rendering on both the server and in the browser was largely a success. This is a substantial improvement over my previous projects since the UI has the best of both worlds: caching, Google indexing, interactivity, etc.
- Map & Chat
The main views of the project were (IMO) implemented very well. State updates instantly across all components, chat works as expected and the timeline is really snappy.
By doing this project I came to the realization I would've gladly taken on the FE module as well. Nevertheless, it was a great experience for me because it was my first real attempt at making a (non-tutorial level) project with a JS based stack. If I had to take a guess I would say that the technological skills I learned by doing this project will definitely come in handy in my career.