An app for viewing and posting classified listings, for Hack Reactor members only.
- Three forums/categories currently exist: Rent, Buy, and Hack. Clicking on the category name will show you all listings for that category name.
- Filtering listings by location (for a specific category name) is possible via the filter sidebar.
- 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.
- If you are logged in / authenticated via github, you will be allowed to create a new listing in the category of your choice.
-
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
-
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;
-
Install required package dependencies:
$ npm install
-
Install webpack and run persistent webpack process to transpile/pack as needed when app source files change:
$ npm install -g webpack $ webpack --watch
-
Load your github API Key ID and Secret:
$ cp server/auth/github_oauth_sample.js server/auth/github_oauth.js
Replace
your_id
andyour_secret
in github_oauth.js with your github API Key ID and secret. -
Start the server process from the project root directory:
$ npm start
-
Seed the database tables with sample data set (seed file located at -/hackifieds/db/seed.js):
$ node db/seed.js
-
Navigate to http:/127.0.0.1:3000 in a browser to access the client app.
Mysql using Sequelize ORM
Send authentication request to github
Handle authentication return from github
Return database Listings table rows (joined with certain fields from Users and Categories tables) to client
Receive a listing table row from the client (associated with a specific user) and insert it into database
Return database Categories table rows to client
Return session to user
Destroy the client's current session and redirect client to main page of app
Hackifieds was built using waffle.io as the project organization tool. Please visit the gitflow.md for our workflow guidelines.
For any issues, please refer to our issues page Please direct any questions regarding Hackifieds to our wiki page
- Product Owner: Sepehr
- Scrum Master: Shane
- Development Team Members: Sepehr, Shane, Leo, Tai
Distributed under the MIT License