Augustas Macijauskas solution for Backpaqr internship task.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
What things you need to install the software and how to install them
First you have to copy project files. Then open console and navigate to /api-server and run:
bundle install
Then you need to insert your database user. Open /config/database.yml and under default enter your postgresql username and password:
default: &default
# some code
username: your_username
password: your_password
# some code
Return to console and run the following commands:
rake db:create
rake db:migrate
rake db:seed
Finally, run:
rails s
You should now have a backend server up and running on port 3000.
To set up the frontend, navigate to /client/app and open a console window. If you are using npm, run:
npm install
Or, if you are using yarn, run:
yarn install
Now, insert your google api key at /client/app/app/constants/googleApi.js:
export default {
KEY: 'insert_your_key_here',
}
Then run:
npm run start
You should now have a frontend server up and running on port 8080.
Frontend:
react - library to build frontend applications
redux, redux-thunk - used for global store management, creating actions and reducers and connecting with components
react-router - used to implement navigation functionality
material-ui - a collection of beautiful responsive components to build applications
axios - used to fetch data by making requests to the backend server
google-maps-react - a google maps library easing work with maps
i18next, react-i18next - both used for adding translation functionality to the website
moment - used to manipulate dates
prop-types - used to tell the application what variables are of what type, which is helpful to prevent bugs
styled-components - useful library to style components
Backend:
pg - postgres database is used
faker - used for generating fake data to seed the database
geocoder - used for generating fake data to seed the database
random-location - used for generating locations to seed the database
- Augustas Macijauskas - AugustasMacijauskas