Skip to content

Latest commit

 

History

History
91 lines (55 loc) · 6.16 KB

README.md

File metadata and controls

91 lines (55 loc) · 6.16 KB

Build Status Code Climate Test Coverage bitHound Score dependencies Codecrystal

LX Riddle

The search for a riddle-based forum is over! 👍👍

Please find our application here. Clue: the username is 'dummy' and the password is '123' (for now).

The tutorial for constructing this application (or one with a similar functionality) can be found at the bottom of this page. Good luck! 🍀

Who?

The same team who brought you such hits as LX News 📰 and LX Search 🔍, Liberty-X, a team in the 6th iteration of the Founders & Coders academy.

Members are: Justen Barget, Rachel Black, Huw Davies and Ruth Uwemedimo.

What?

LX Riddle will be a forum where you can share and answer riddles, and even chat about them with your pals / complete strangers (Wow!). We are hosting this on Heroku and using Redis as a database. Socket.io will also be used for an embedded chat room. We are conducting this project during the 5th week of the course.

Why?

We are reinforcing our knowledge of Redis, as well as trying to integrate more functionality using the DB - such as upvoting, deleting etc. We have also not implemented socket.io before, so we hope to do this successfully here. Once this is achieved, we are looking to implement some authentication for our users 🔐 We are also starting training on client handling, and we are using Pivotal Tracker to this effect.

Our wireframes

wireframes

Whiteboard plan for our front-end and back-end exchanges

whiteboard

Dependencies

  • Redis (Our Database)
  • Pre-commit hooks
  • UUID (Generates our user IDs!)
  • JSON Web Tokens (What we're using to do authentication)
  • Socket.io (Live chat on the site!)

Dev Dependencies

  • QUnit (frontend testing)
  • Tape (backend testing)
  • Shot (backend testing)
  • Istanbul (Tests quality of code)
  • Codeclimate (Badge at top of page!)

Testing

Please find our frontend tests here.

For backend testing, please download our repo and run our backendTest.js file, having used the command npm install to download our dependencies shown above.

Tutorial (or where to look!)

Ok. Some of the key features we used are listed below and we have provided the resources. If you have any further questions about how we went about constructing this repo, please raise an issue or get in touch with us! 👍

Redis

Redis has a good walkthrough of the fundamentals on their website here. Once you've gone through this, have a look at DWYL's tutorial here, which puts a bit more meat on the bones and covers some node.js packages. We plumped for Heroku Redis. Don't be scared when they ask you for your card details. It's free! 🚫💰

Please find handy ✋ FAC6 cheatsheet here.

JSON Web Tokens

We went through another DWYL tutorial for our authentication functionality (it's hard and will take you a while, don't be disheartened). Find it here.
Clue: have a long look through the example app code and try to figure out what's going on. We traced which functions use which other functions like so:

sketch

After you've done something like this, try to go about building your authentication functionality yourself.

UUID

We used the node module UUID to generate a unique user ID during our authentication process. For this, we used the node module UUID, after it was recommended in a Stack Overflow post. You can follow their repo here. We plumped for a time-based ID! 🕜

Socket.io

Some more of our very own FAC6ers (:heart:) wrote a Web Sockets README here, which may be useful to understand what Socket.io is doing. Socket.io itself has a handy tutorial located here, which we would strongly recommend following before constructing your application. We also closely examined the example repo from the README above, which is located here. Have fun!

Testing

For our front-end tests we use Qunit. A good tutorial on how to use this can be found here. For backend testing with Node, they have another great tutorial here.

Code Quality Badges

We like Code Climate and Coverage (also provided by Code Climate). Travis is also very good for continuous integration.

A handy tool for mapping the dependencies on your Github repo can be found here, with the open-source repo here.

We're gonna do it. We're gonna recommend a DWYL tutorial again. Have a look over it for all the badges you'd ever need!

Enjoy building your app! 🤘