Giter Club home page Giter Club logo

mylocal's Introduction

myLocal

A local listing service with want ads and reputation management

Team

  • Product Owner: Yasser Mahmud
  • Scrum Master: Aman Thapar
  • Development Team Members: Jonathan Hawley-Peters

Table of Contents

  1. Team
  2. Table of Contents
  3. Requirements
  4. Development
    1. Installing Dependencies
    2. Tasks
    3. Task Descriptions
    4. File Structure
    5. /src
    6. /test
    7. Roadmap
    8. Built With
    9. APIs
  5. Contributing

Requirements

  • Node 6.5.x
  • MongoDB 3.2+
  • Jenkins 2.19

Development

This is a React/Redux app with a Node/Express server and a MongoDB database. The project has been set up to run tests with Mocha, Chai-JQuery, and React Test Utilities so we can live our TDD dreams.

Installing Dependencies

To start, you need a .env file in the root directory with PORT, DBPATH and SECRET variables.

Tasks

From within the root directory:

npm install 
webpack --watch
grunt local
npm run test:watch

Task Descriptions

  • The webpack --watch command will constantly rebuild only the changed parts of the project
  • The grunt local command will run your dev server on localhost:3000
  • The npm run test:watch command will run your test every time it detects a change in the filesystem. You may want to turn off webpack watch.

File Structure

There are two files that matter for development in root: /src and /test. An exhaustive listing of the entire file structure can be found in Dir_Struct.md

/src

  • client
  • public
  • server
  • index.js

/client has source files for the front end React/Redux app. Inside /client, the /actions, /constants, and /reducers folders contain the code that manages Redux state. /components has regular react components, while /containers has React/Redux components.

Finally, at the top level of /client index.js is the entry point for the React App, and routes.js controls the front end routing for the single page application.

/test

  • actions
  • components
  • server
  • test_helper.js

The test_helper.js contains a bunch of fun tools that allow us to mock a DOM using jsdom while running tests in the command line, add testing feartures to react components with Reach Test Utilities, and simulate events on the DOM using Chai-JQuery. The folders in /test contain tests for code in the /client directory, but the file structure is shallower for ease of navigation.

Roadmap

View the project roadmap https://waffle.io/hrr18-trifecta/mylocal on waffle.io

Built With

  • Node
  • MongoDB
  • React
  • Redux
  • Mocha
  • ChaiJQuery

APIs

  • Google Maps
  • Eventbrite
  • Yelp

Contributing

See CONTRIBUTING.md for contribution guidelines, or if you're feeling bold:

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

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.