Code Monkey home page Code Monkey logo

sf's Introduction

Forum Prototype

Challenge to design and prototype a forum ๐Ÿ™

Demo

https://fierce-sands-9435.herokuapp.com/

Before testing the prototype:

  • Header and Footer were added so the forum feels more like a Strava site, they don't function fully as the originals on Strava.com

  • For mobile/tablet testing please use actual iPhone/iPad or on your mac use Chrome device mode

Design

Please look at the following links for understanding design related decisions.

File Structure

Back-end

|-- sf
    |-- api
    |   |-- api.js                    # API related endpoint here
    |-- app
    |   |-- app.js                    # web application endpoints here
    |-- data                          # JSON mock data here
    |-- shared
    |   |-- js                        # JS files shared across back-end and front-end
    |-- views
    |   |-- layouts
    |   |   |-- main.handlebars       # main handlebars layout
    |   |-- partials
    |   |   |-- header.handlebars
    |   |   |-- footer.handlebars
    |   |-- index.handlebars          # Forum top page HTML
    |-- server.js                     # Express server initialization & setup

Front-end

|-- sf
    |-- public
    |   |-- assets                    # All assets, svg, png are here
    |   |-- css                       # SASS files get build here
    |   |-- js                        # Files in src get build here
    |   |   |-- src                   # All front-end related JS file here
    |-- sass
    |   |-- app.scss                  # Main file for SASS
    |-- shared
    |   |-- js                        # JS files shared across back-end and front-end

Following files are heavily reusing HTML/CSS/images from strava.com:

  • views/partials/header.handlebars
  • views/partials/footer.handlebars
  • views/partials/ajax_loader.handlebars
  • views/partials/ajax_loader.handlebars
  • public/assets/sprites/**/*.png
  • public/assets/website/**/*.svg
  • public/assets/svg/strava-logo-****.svg
  • public/css/strava-app-icons.css
  • sass/_strava.scss

Technology choices

  • Node.js
    • Personally most familiar with developing and prototyping server side or middleware applications
  • express
    • Fast and minimalist web framework, which is why I use it for all my prototyping that involves server side coding
    • Supper easy to deploy to Heroku for demos
  • handlebars
    • Can share templates between front-end & back-end
    • Simple syntax
    • Easily extendable with custom helpers
    • One of the popular templating engines, easy to find documents/examples, shouldn't be too difficult for other dev's to understand
    • Simple syntax makes it easy to swap with other templating engines
  • Bootstrap 3.3
    • Been using it in production for more then a year, great for responsive design and quick prototyping
    • Lot's of documentations
    • Used in Strava LOCAL
  • jQuery
    • Supper easy to prototype with
    • Been using it for years
    • (Not always use it production)
  • sass
    • Prefer scss syntax, beet using in production for years
    • If possible would use this as much as possible
  • autoprefixer
    • Parse CSS and add vendor prefixes to CSS rules using values from Can I Use
    • Makes writing css much easier
    • Use this for almost all my CSS/SCSS coding at work or in private projects
  • browserify
    • Makes it easy to share modules between fornt-end & server side code
  • jshint & JSCS
    • Helps keeping code consistent & keeping small mistakes out
    • Alway include into my projects, work or in private projects
    • If possible would use this as much as possible

Developing/Running locally

You would need Ruby and Node.js installed.

Hopefully should work... ๐Ÿ™ (If not, file an GitHub issue)

Installing dependencies

bash setup.sh

Running web app server

node server.js

Open this URL in your browser [http://localhost:8999](# express server)

Developing

gulp dev

This command will watch any .scss or .js file changes and restart the web server.

Building

gulp

For now mainly builds .scss files.

sf's People

Contributors

marexandre avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.