About the app...
Artsy is an application aimed at art lovers. The target audience is local community.
The three key aims of the app are to:
- Provide a market place for home made art, bringing buyers and sellers together
- Provide a forum for users to arrange and host meet-ups
- Allow users to connect with eachother, to teach or be taught new artistic skills.
With a little additional time, here are some of the future improvements I would like to make to Artsy:
- Add Stripe payment facility to enable online payments.
- Provide a meetup.com API to allow for more meet-up options
- Enable mail messaging to event owners, when updates are made to their event
- Implement image optimisation to ensure better site aesthetics on user image uploads.
Finding the correct category in Etsy to drill down into was tough!
There was little documentation on the Etsy data fields classification, so Insominia was used to interrogate the API and find a consistent data field which referred to 'art supplies'.
Once this was obtained, the searches made a lot more sense and returned searches that were relevant and met the criteria of being an art supply!
Behind the Scenes...
This is a full stack application which utilises RESTful routing and authentication. Ruby on Rails provides the server-side functionality and Angular serves the client-side.
PostgreSQL DB is used. Perhaps the most complex relationships are seen on the Artist / Buyer Show page which has several DB relationships in play. It brings together all of the SQL data relating to a user (user, product and event data) as well as data from join tables relating to genres.
Authentication enables secure routing. These allow users to only edit or delete objects they have created. For example, while the events page is owned by a user, they cannot edit another users comments and an event attendee has limited edit rights by being able to select attend for that event. Users must log in to use the site.
As well as standard registration, Oauth is made available for Github users.
A new user is redirected to a profile page to update it with key information. This makes the site more useful and informative to all users and ensures the new user doesn't forget to make the updates.
Filter / Search
filterFilter allows the user to reduce the items on display in any of the index pages and find what they are looking for, faster
The Etsy API matches the genre of an event to matching products under the category of Etsy's art supplies, which the user may be interested in. It populates results with 12 items for purchase or just for inspiration.
The parallax class adds interest to the index page with scrolling text and static pictures, holding the users interest when they first enter the site.