Code Monkey home page Code Monkey logo

giggs's Introduction

#Giggs Giggs is a job finding web application that allows those who are seeking for short term temporary jobs similar to freelancing to easily be connected to other users looking to hire amazing, hard working individuals who are right for the job. This web application allows the users to create an account traditionally through a sign up form or through a Facebook authentication. It also has an easy to use form to create job postings for employers, allows both employees and employers to have an easier time task managing current jobs that are active, and a job listings for users that can be sorted through price, category, and deadline and filtering through categories. Giggs has a map feature that is able to find the user's current location and mark all the available jobs surrounding the users along with a info box of the job that is available. Lastly, using Socket.IO, this application allows the users to stay connected with each other via chat. We hope you enjoy this as much as we enjoyed putting the effort and time to make this web application come to life.

Environment Setup

Firstly, we would want to install all the save dependencies. In the terminal, run the command line:

$ npm install

After the terminal finishes installing all the dependencies, in a separate tab run in the command line:

$ npm run bundle

Lastly, in the previous terminal where you have installed your dependencies, run in the command line:

$ npm run start

Front-End

Client side of Giggs was mostly using React, Redux, Axios, BootStrap, and FontAwesome.

client
|
├── actions
│   ├── actionsTypes.js
|   |
│   ├── applicants.js
|   |
│   ├── auth.js
|   |
│   ├── categories.js
|   |
│   ├── chat.js
|   |
│   ├── jobs.js
|   |
|   └── review.js
|  
├── components
│   ├── account
|   |     ├── chat.js
|   |     |
|   |     ├── logout.js
|   |     |
|   |     ├── profile.js
|   |     |
|   |     ├── signIn.js
|   |     |
|   |     ├── signUp.js
|   |     |
|   |     ├── userApplications.js
|   |     |
|   |     ├── userJobPosts.js
|   |     |
|   |     └── userProfile.js
|   |
|   |── jobs
|   |     ├── reviews
|   |     |     ├── completedReview.js
|   |     |     |
|   |     |     ├── createReview.js
|   |     |     |
|   |     |     ├── getReviews.js
|   |     |     |
|   |     |     └── starReview.js
|   |     |
|   |     ├── applicantList.js
|   |     |
|   |     ├── applyJob.js
|   |     |
|   |     ├── createJob.js
|   |     |
|   |     ├── eachJob.js
|   |     |
|   |     ├── jobAdmin.js
|   |     |
|   |     ├── jobListings.js
|   |     |
|   |     ├── manageApplicants.js
|   |     |
|   |     ├── manageApplication.js
|   |     |
|   |     ├── reviewButton.js
|   |     |
|   |     └── selectedJob.js
|   |
│   ├── map
|   |   ├── infoBox.js
|   |   |
|   |   └── jobMap.js
|   |
│   ├── geoComponent.js
|   |
│   ├── inputBox.js
|   |
│   ├── NavBar.js
|   |
│   ├── renderField.js
|   |
|   └── selectionComponent.js
|
├── reducers
│   ├── applyReducer.js
|   |
|   ├── authReducer.js
|   |
|   ├── catReducer.js
|   |   
|   ├── chatReducer.js
|   |
|   ├── jobReducer.js
|   |
|   ├── mainReducer.js
|   |
|   ├── mapReducer.js
|   |   
|   └── reviewReducer.js
|
├── styles
|   ├── custom.css
|   |
|   └── styles.css
|
├── app.js
|   
├── index.html
|  
├── routes.js
|  
├── user.png
|
└── work.png

Back-End

The sever side is mainly built with Express Node.js, mySQL, and Sequalize.

server
|
├── applicant
|   |
│   ├── applicantCtrl.js
|   |
|   └── applicantModel.js
|  
├── category
|   |
│   ├── categoryCtrl.js
|   |
│   ├── categoryData.js
|   |
|   └── categoryModel.js
|
├── config
│   ├── auth.js
|   |
|   ├── fbRoutes.js
|   |
|   ├── helpers.js
|   |   
|   ├── middleware.js
|   |
|   ├── routes.js
|   |   
|   └── sockets.js
|
├── db
|   └── connection.js
|
├── job
|   |
|   ├── jobCtrl.js
|   |   
|   └── jobModel.js
|   
├── messages
|   |
|   ├── messageCtrl.js
|   |   
|   └── messageModel.js
|
├── review
|   |
|   ├── employeeReviewsModel.js
|   |
|   ├── employerReviewsModel.js
|   |   
|   └── reviewCtrl.js
|   
├── user
|   |
|   ├── userCtrl.js
|   |   
|   └── userModel.js
|
└── server.js

REST/CRUD Outline

ENDPOINT                                         METHOD         EXPECTED                              
──────────────────────────────────────────────   ─────────────  ────────────────────────────────────   
/db/auth/signup                                 |              |                                   |                                          
                                                |              | {                                 |
                                                │ POST         | 'username': some_userName,        │   
                                                │              │ 'password': '#HASHPASSWORD',      |
                                                |              |  }                                |
                                                │              │                                   │
/db/auth/signin                                 │ GET          │ {                                 │
                                                │              │  'username': 'some_userName',     │
                                                │              │  'password': '#HASHPASSWORD'      │
                                                │              │ }                                 │
/auth/facebook                                  | GET          |                                   |
                                                |              |                                   |
/db/users/update                                | POST         |  {                                |
                                                |              |  'username': 'some_userName',     |
                                                |              |  'password': '#HASHPASSWORD',     |
                                                |              |  'phone': 'XXX-XXX-XXXX',         |
                                                |              |  'name': 'Jane Doe',              |
                                                |              |  'email': '[email protected]'        |
                                                |              |  }                                |
                                                |              |                                   |
/db/users/:id                                   | GET          |  {                                |
                                                |              |   'username': 'some_userName',    |
                                                |              |   'password': '#HASHPASSWORD',    |
                                                |              |   'phone': 'XXX-XXX-XXXX',        |
                                                |              |   'name': 'Jane Doe',             |
                                                |              |   'email': '[email protected]'       |
                                                |              |  }                                |
                                                |              |                                   |
/db/jobs/create                                 | POST         |  {                                |
                                                |              |    'jobName': 'Name of Job',      |
                                                |              |    'openings': INT,               |
                                                |              |    'description': 'TXT'           |
                                                |              |    'category_id': INT,            |
                                                |              |    'address': 'House Address',    |
                                                |              |    'user_id': INT,                |
                                                |              |    'max_price': '$XXX',           |
                                                |              |    'location_lat': XX.X,          |
                                                |              |    'location_lng': XX.X,          |
                                                |              |    'address': '123 Sesame St.',   |
                                                |              |    'deadline': 'YYYY-MM-DD'       |
                                                |              |  }                                |
                                                |              |                                   |
/db/jobs/getAll                                 | GET          |  {                                |
                                                |              |    'jobName': 'Name of Job',      |
                                                |              |    'openings': INT,               |
                                                |              |    'description': 'TXT'           |
                                                |              |    'category_id': INT,            |
                                                |              |    'address': 'House Address',    |
                                                |              |    'user_id': INT,                |
                                                |              |    'max_price': '$XXX',           |
                                                |              |    'location_lat': XX.X,          |
                                                |              |    'location_lng': XX.X,          |
                                                |              |    'address': '123 Sesame St.',   |
                                                |              |    'deadline': 'YYYY-MM-DD'       |
                                                |              |  }                                |
                                                |              |                                   |
/db/jobs/getAll                                 | GET          |  {                                |
                                                |              |    'jobName': 'Name of Job',      |
                                                |              |    'openings': INT,               |
                                                |              |    'description': 'TXT'           |
                                                |              |    'category_id': INT,            |
                                                |              |    'address': 'House Address',    |
                                                |              |    'user_id': INT,                |
                                                |              |    'max_price': '$XXX',           |
                                                |              |    'location_lat': XX.X,          |
                                                |              |    'location_lng': XX.X,          |
                                                |              |    'address': '123 Sesame St.',   |
                                                |              |    'deadline': 'YYYY-MM-DD'       |
                                                |              |  }                                |
                                                |              |                                   |
/db/jobs/updateStatus                           |              |                                  |                                          
                                                |              |                                   |
                                                │ POST         |                                   │   
                                                │              │                                   |
                                                |              |                                   |
                                                │              │                                   │
/db/applicant/apply                             │ POST         │ {                                 │
                                                │              │  'user_id': INT,                  │
                                                │              │  'job_id': INT,                   │
                                                │              │  'bid_price': INT                 │
                                                |              | }                                 |
                                                |              |                                   |
/db/applicant/cancel                            | POST         |  {                                |
                                                |              |  'user_id': INT,                  |
                                                |              |  'job_id': INT                    |
                                                |              |  }                                |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
/db/applicant/updateBid                         | POST         |  {                                |
                                                |              |   'user_id': INT,                 |
                                                |              |   'job_id': INT,                  |
                                                |              |   'bid_id': INT                   |
                                                |              |  }                                |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
/db/applicant                                   | GET          |  {                                |
                                                |              |   'user_id': INT,                 |
                                                |              |   'job_id': INT,                  |
                                                |              |   'bid_id': INT                   |
                                                |              |  }                                |
                                                |              |                                   |
                                                |              |                                   |
/db/applicant/changeStatus                      | GET          |  {                                |
                                                |              |   'job_id': INT,                  |
                                                |              |   'job_status': 'STATUS',         |
                                                |              |  }                                |
                                                |              |                                   |
                                                |              |                                   |
/db/applicant/getJobs                           | GET          |  {                                |
                                                |              |    'user_id': 'Name of Job'       |
                                                |              |  }                                |
                                                |              |                                   |
/db/category/getAll                             | GET          |                                   |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
/db/category/query                              | GET          |                                   |
                                                |              |                                   |
                                                |              |                                   |
                                                |              |                                   |
/db/category/getParents                         | GET          |                                   |


Giggs Team

Sandy Tran

Calvin Lee

Alberto Esquivias

Tiffany Ip

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.