Coder Social home page Coder Social logo

Hackifieds

An app for viewing and posting classified listings, for Hack Reactor members only.

Table of Contents

Example / Usage

  1. Three forums/categories currently exist: Rent, Buy, and Hack. Clicking on the category name will show you all listings for that category name.
  2. Filtering listings by location (for a specific category name) is possible via the filter sidebar.
  3. Clicking on a listing title will pop open detailed listing info for that particular listing. You cannot see particular details (i.e. email, phone number) until the app has authenticated you via github.
  4. If you are logged in / authenticated via github, you will be allowed to create a new listing in the category of your choice.

Getting Started

  1. Start the MySQL server. Hackifieds will run on MySQL or MariaDB and has been tested on each DBMS:

    For Arch Linux, using systemd:

    $ systemctl start mysqld.service

    For OS X:

    $ /usr/local/mysql/bin/mysqld_safe
  2. Start up MySQL interpreter. If starting for the first time, create the app's database:

    $ mysql -u root

    At the mysql prompt:

    > CREATE DATABASE hackifieds;
  3. Install required package dependencies:

    $ npm install
  4. Install webpack and run persistent webpack process to transpile/pack as needed when app source files change:

    $ npm install -g webpack
    $ webpack --watch
  5. Start the server process from the project root directory:

    $ npm start
  6. Seed the database tables with sample data set (seed file located at -/hackifieds/db/seed.js):

    $ node seed.js
  7. Load your github API Key ID and Secret:

    $ cp hackifieds/server/auth/github_oauth_sample.js hackifieds/server/auth/github_oauth.js

    Replace your_id and your_secret in github_oauth.js with your github API Key ID and secret.

  8. Navigate to http:/127.0.0.1:3000 in a browser to access the client app.

Architecture

High Level Architecture

Architecture

Database Schema

Mysql using Sequelize ORM

Schema

API / Endpoints

GET /auth/github

Send authentication request to github

GET /auth/github/callback

Handle authentication return from github

GET /api/listings

Return database Listings table rows (joined with certain fields from Users and Categories tables) to client

POST /api/listings

Receive a listing table row from the client (associated with a specific user) and insert it into database

GET /api/categories

Return database Categories table rows to client

GET /api/auth

Return session to user

GET /api/logout

Destroy the client's current session and redirect client to main page of app

Contributing

Hackifieds was built using waffle.io as the project organization tool. Please visit the gitflow.md for our workflow guidelines.

Questions And Issues

For any issues, please refer to our issues page Please direct any questions regarding Hackifieds to our wiki page

Meta

Project Engineers

Development Team

Scrum Master

Product Owner

License

Distributed under the MIT License

hackifieds's Projects

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.