A web app that will help you discover the most amazing thing to spend your leisure time on.
Someone said:
"Find three hobbies you love: one to make you money, one to keep you in shape and one to be creative".
But there is a problem: with all the different cool things that people do in the world and the little time we have available, it is impossible to try every hobby out there... So, how can we find the best new thing?
find a Hobby! is a collaborative crowdsourced platform where people can:
- Post their favourite hobby.
- Like or dislike hobbies posted by other users.
- Get recommended hobbies based on their previous liked hobbies.
The app uses a recommendation engine to provide users with hobbies based on their previous actions. It works like this:
- User 'A' likes hobbies 1, 2 and 3.
- The app stores a relation between this 3 hobbies.
- User 'B' likes hobbies 1 and 2.
- The app will recommend hobby 3 to user 'B', because it knows that there is a common relation between hobbies 1, 2 and 3.
* More people like and dislike hobbies -> better recommendations!
* The app doesn't store any private information about the user, only anonymous relations between sessions and hobbies. That's why there is not a need to register or even to put your e-mail to use it!
When you like a hobby, it will appear in your 'Liked' section. In there, just tap on it to get redirected to a tutorial where you will learn the first steps on how to get started with this activity.
Every hobby will have a background split in three colours. Each colour represents the proportion of this three entities that the hobby can provide you with. Remember:"Find three hobbies you love: one to make you money, one to keep you in shape and one to be creative".
This app is 100% crowdsourced and collaborative. It works with the hobbies that users post. So if you have a cool activity and want to share it with the world, just go to the 'Post' section and input the name, a short description, a link to a picture and a link to a nice get started tutorial of the hobby!
- Clone the repo
$ git clone https://github.com/jportella93/find-a-hobby-client.git
$ cd find-a-hobby-client
- Install dependencies
$ npm install
- Start development server
$ npm run main
- Connect client with server.
Now you will be able to post and like hobbies with the deployed production database.
If you want to use a clean local and fast database (recommended for development):
- start development server following instructions of https://github.com/jportella93/find-a-hobby-server
- In /src/lib/apiClient.js, change the variable URL to point to your IP address followed by the port where you are runnning the server. For example: const URL = 'http://192.168.1.191:3000'
- React - Front end library for building user interfaces
- Bootstrap - Framework for UI elements.
- Onsenui - Mobile friendly framework for responsive elements.
- Font Awesome - Icons library. Used for the football ball, dollar sign and ballon icons.
Any contribution is welcome! UI improvements, features... you name it! Just fork the repository and go nuts, then submit a pull request pointing to this repo.
Some ideas i'm planning to do:
- Implement state managment with redux.
- Responsiveness: Make more desktop friendly.
- Feature: let users vote on hobby characteristics.
- Feature: Comment on hobbies.
- Feature: User can find and post where this activities take place near them with geolocation.
- Feature: Geoplace where this activities take place near the user.
- Feature: search hobbies by name.
- Feature: share hobbies by url.
- Feature: report hobby, put filter on 'bad' words.
- Feature: Statistics. Which hobbies are liked with this hobby, how many hobbies are in database...
... or any other idea!
Jon Portella - Github - LinkedIn - Twitter
This project is licensed under the MIT License.