Coder Social home page Coder Social logo

acmeyer / thegigsaloon Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 2.0 20.04 MB

An app to find gigs, apply, and share the experience.

License: MIT License

Java 0.59% JavaScript 91.30% Ruby 0.05% Objective-C 0.74% HTML 6.60% CSS 0.42% Starlark 0.31%
parse-server parse-dashboard mongodb reddit-api s3 ses onesignal react-native facebook-sdk fabric

thegigsaloon's Introduction

The Gig Saloon

An app to find gigs, apply, review, and learn more about them.

Original blog post

The app is no longer actively maintained or in the App Store so here's the open source code in case anyone else wants to use it in anyway.

Features

  • Login with Facebook or Email using one-time code
  • Search for available gigs by location, role, requirements, and type.
  • Apply to gigs directly from app with prefilled forms
  • Review gigs
  • Read articles on specific gigs
  • Add comments to each gig

How to Use

Install javascript libraries by running yarn in terminal.

Set up the Database

The server uses a MongoDB for its database. You either need one running locally or using a service like mLab. Once you have configured your MongoDB, either set an environment variable to the uri where the database is or add the uri to the variable DATABASE_URI found in server/server.js.

In order to start the app with something in it, you may want to pre-fill your database with gig data. There are two data dumps to help you get started. The first is the Jobs.json file which is a bunch of gigs data. The second is the Locations.json file which includes all the location data for each gig. This data is helpful for geolocation searches. Finally, you'll need the join table for these two classes in order to connect them. That data is in the _Join:jobLocations:Jobs.json file.

In order to import this data into your local or hosted database, follow this mongo import guide: https://docs.mongodb.com/manual/reference/program/mongoimport/.

Set up the Server

All server related files can be found in the server/ directory at the root of the app.

The server for the app is a Parse Server with the Parse Dashboard for the dashboard UI.

To start the server, run npm run start in your terminal. If all goes well, your server will be running locally at http://localhost:8080/parse. You can view the dashboard by visiting http://localhost:8080/dashboard and entering user for username and password for password.

If everything was set up correctly, you should see the main dashboard with The Gig Saloon app. Clicking on that should open up the app's dashboard view. If you imported any initial data from above, you should see that data in the dashboard.

The server is set up to use AWS S3 for images. In order to store images for you app correctly you'll need to have environment varaibles set for AWS_ACCESS_KEY_ID, AWS_S3_BUCKET, AWS_SECRET_ACCESS_KEY, and AWS_REGION. For more on how to set this up, see the Parse Server guide on it here: http://docs.parseplatform.org/parse-server/guide/#configuring-file-adapters.

The servers also uses AWS SES for sending emails. To see how to set up AWS SES with Parse Server, visit: https://github.com/parse-server-modules/parse-server-amazon-ses-adapter.

The app is set up to use OneSignal for push notifications. To learn how to set up OneSignal with Parse Server, visit: https://github.com/parse-server-modules/parse-server-onesignal-push-adapter.

The server also has a few interesting background jobs that were run in the original app. This includes importing news articles (found in server/articles.js) and reddit posts (found in server/posts.js. In order to import articles you'll need to set up your own Google Alert feeds. You can also choose to update the different subreddits where posts are pulled from. You can run these jobs from the command line or using the dashboard.

The server can be easily hosted on Heroku. To find out more on how to do that, visit: https://github.com/parse-community/parse-server#running-parse-server-elsewhere.

Set up the Mobile App

The mobile app was written using React Native. It it set up to work on both iOS and Android.

The app uses the following libraries:

  • Facebook SDK (for login and importing user data)
  • Fabric (for crash analytics)
  • Codepush (for updating the app without needing an App Store update)
  • Mixpanel (for in-app analytics)

You'll need to have an account for each library in order for the app to run successfully. Once you have an account, visit the following guides for setting up each with React Native:

Set up iOS

In order to run the iOS app, you'll need to set a few things up. The first thing you'll need to set up is CocoaPods. To learn how to install and set up CocoaPods, visit: https://cocoapods.org.

Once CocoaPods is installed and set up correctly on your machine, in terminal run cd ios && pod install. This will install all the required libraries.

You will also need to turn on the following Capabilities within your app:

  • Push Notifications
  • Background Modes (remote notifications)
  • Keychain Sharing

Finally, make sure to update the User-Defined variables in Build Settings in XCode with your own credentials you got from setting up the accounts above.

Set up Android

Similar to iOS, you'll need to add your own credentials for each of the above accounts. These credentials can be set in android/app/build.gradle under buildTypes. The Fabric credential set up can be found in android/app/src/AndroidManifest.xml at the bottom.

Run the Mobile App

See the React Native docs for how to run the mobile app: https://facebook.github.io/react-native/docs/running-on-device.html.

Libraries/Services Used

  • Parse Server
  • Parse Dashboard
  • MongoDB
  • Reddit API
  • Google Alerts
  • AWS S3
  • AWS SES
  • OneSignal
  • React Native
  • Facebook SDK
  • Fabric
  • Codepush
  • Mixpanel
  • CocoaPods

License

Released under the MIT License. See LICENSE or http://opensource.org/licenses/MIT for more information.

thegigsaloon's People

Contributors

acmeyer avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.