ThrillPiXx is the #1 platform to Find, Learn, and Explore hundreds of thrills around the world. My role was as the Technical Lead and to build the API for the mobile app. I used Ruby on Rails for the API and a Web interface for the admins. The API provides the following features:
- Users: Creation/edition/deletion – Get profile – Search by username – Check if a username is available – Authentication/New password request
- Followers: Follow/Unfollow a user – Accept/Reject a follower – Get list of followers
- Invite a friend by email
- Categories: Get list – Search categories by name – Follow/Unfollow a category
- Thrills: Creation/edition/deletion – Get list – Rating – Get list of Top Thrill Seekers
- Challenges: Create a challenge – Rate a challenge’s picture – Accept/reject a challenge – Get list
- Bucket lists: Adding/Removing an item – Edition – Mark a bucket list item as done – Get list
- Trips: Creation/edition/deletion – Follow/Unfollow a trip – Get list
- Comments: Creation/deletion – Get list – React to a comment
- Messages: Get list of conversations/messages – Send/Delete a message
- Notifications: Get list – Delete a notification – Set notification as read
- Report an item
- Search a location
- Check if a picture is safe
Instead of using the usual suspects for storing the data, DataStax Enterprise is used. It is a challenge because Rails ActiveRecord can’t be used in that case. A lot of customizations had to be done to make it work.
AWS is used for storing images (S3), sending emails (SES) and push notifications (SNS), for the CDN (CloudFront), and video transcoding (ETS).
Google Vision API is used to detect inappropriate images uploaded by users.