The app consists of a Rails / GraphQL API and React Front End. See here for a Medium article describing the development process for this app.
A web application to arrange meetup events using cutting edge technologies, including GraphQL, Ruby on Rails and React.
Technical Milestones
- Integrated GraphQL on top of Ruby on Rails for the site's data layer
- Built an authentication system for the site
- Utilized UX best practices and built dynamic web forms to add to the interactivity of the site
- As always, followed the AirBnB JSX and JavaScript style guides and utilized ESLint to provide exceptional style and code quality.
The repo contains two projects, seperated by subtrees. The server bootstraps at the root level, whereas the Front End begins in the ./client
directory.
The package.json file includes over a dozen npm scripts to make most tasks a breeze.
Installation can be achieved by running
npm run setup
To get the development server running, please run
npm run start
Scripts can be referenced from the Scalable React Boilerplate Project repo.
If you just want to serve the minified and chunked bundles, which might be faster, you can run
npm run serve:bundle
In production, the client connects to the heroku server. You can run the server locally with the following command.
NODE_ENV=development node server
The application is bundled using Webpack and the production configuration includes many optimizations, including
- Code Chunking
- CSS Module Extract Text
- Minification / Uglification
The test suite contains over 70 tests and can be run with
npm run test
The app is deployed to Heroku and has a CI suite running with Codeship. It is running Express JS and GraphQL on the server for Front end and GraphQL on Rails for the back end
The client app will by default connect to the live API. If needed, you can get this API running following the guide below.
Running the following commands in succession will effectively setup the API and get it up and running.
rvm use [email protected] --create
bundle install
rake db:setup
rails s
This project is licensed under the MIT License - see the LICENSE.md file for details
When working with a team on a project that uses Node, it is important that everyone use the same version of node and npm. In the case of this project, we are using Node version 5.2.0.
Instructions for installing NVM and setting your node version for the project can be found here.
If you get an error message, such as "Unexpected token import", that means that your Babel installation is not working right. Please see here for potential troubleshooting steps.
Many thanks to the Grommet UX teams and the teams building React, Redux, GraphQL and Apollo. Also thank to the grapql-ruby team!