MyTarotation
Project Overview: MyTarotation is a unique application that blends the mystical art of tarot reading with personalised media recommendations. Developed as a group project during the Founders and Coders program, it provides users with curated suggestions for books, movies, and music based on their personal details and recent media consumption.
Links
Objectives
- Create an engaging user experience combining tarot and media recommendations
- Implement multiple API integrations for comprehensive media suggestions
- Build a robust server-side application without middleware or databases
- Develop an intuitive interface for user interactions
- Ensure reliable data persistence using local storage
Features
-
Personalised Fortune Telling:
- Age and birth month-based readings
- Starsign integration
- Recent media consumption analysis
- Customised tarot interpretations
-
Smart Media Recommendations:
- Book suggestions via OpenLibrary API
- Movie recommendations using OMDB API
- Music album picks through MusicBrainz API
- AI-powered content curation
-
Quick Reading Options:
- Express Fortune for instant readings
- Pre-Coffee Fortune with mood selection
- Community mood-based recommendations
- Local storage for quick access
-
Custom Implementation:
- Server-side HTML rendering without templating engines
- Local data persistence with node-persist
- Dynamic background and navigation
- Responsive design with Tailwind CSS
Technology Stack
- Backend: Node.js with Express
- Frontend: Custom HTML rendering
- Styling: Tailwind CSS
- APIs:
- OpenAI API for recommendations
- OpenLibrary API for books
- OMDB API for movies
- MusicBrainz API for music
- Testing: Cypress
- Documentation: Swagger
Future Improvements
-
Enhanced Features:
- User accounts and saved readings
- Social sharing capabilities
- More detailed tarot interpretations
- Expanded media categories
-
Technical Enhancements:
- Database integration
- Caching system
- Performance optimisations
- Additional API integrations
Outcome
MyTarotation successfully demonstrates the power of combining multiple APIs and creative design to create an engaging user experience. The project showcases effective server-side rendering and local data persistence, while maintaining a whimsical and intuitive interface. It was a great opportunity to work with a team and implement complex features within technical constraints.