Artist Explorer is a multi-platform application ecosystem (Web & Android) designed to help users discover artists, view detailed biographies, and explore artwork collections. The system leverages the Artsy API for data, MongoDB for persistent user data, and includes a Generative AI chatbot assistant.
This project provides a seamless experience for art enthusiasts across devices. It consists of three main components:
- Front+Back v2 (Web): A responsive Angular 19 application backed by a Node.js/Express server. It handles user authentication (JWT), proxies Artsy API requests, and manages user favorites.
- Front(Android) v2: A modern native Android application built with Jetpack Compose. It interfaces with the same backend to provide a synchronized mobile experience.
- Experimental AI (v1): A Python Flask service integrating Google Gemini 2.0 to act as a helpful student assistant.
- Dynamic Search: Real-time artist search with autocomplete functionality using the Artsy API.
- Detailed Profiles: View artist biographies, nationality, birth/death dates, and carousel galleries of their artworks.
- Favorites System: Authenticated users can save artists to their favorites list, which persists across Web and Android platforms via MongoDB.
- Responsive Design: Built with Bootstrap for mobile-first compatibility.
- Secure Auth: JWT-based authentication with HTTP-only cookies and bcrypt password hashing.
- Interactive UI: Tabbed navigation, modal views for artwork categories, and toast notifications.
- Modern UI: Native Jetpack Compose interface with Material 3 design.
- Session Management: Persistent login using cookies and SharedPreferences.
- Optimized Networking: Uses Retrofit and Coil for efficient API calls and image loading.
- Node.js (v18+) and npm
- Android Studio (Koala or later recommended, API 34 SDK)
- Python (3.10+)
- MongoDB Atlas URI
- Artsy API Credentials
- Google Gemini API Key
Navigate to the web directory and install dependencies:
cd "Front+Back v2"
npm installConfigure your environment variables (create a .env file) with your MongoDB URI and Artsy credentials. Then run:
# Development server
npm startThe Angular frontend is served via the Node backend or can be run separately via ng serve.
- Open Android Studio.
- Select Open and navigate to
Front(Android) v2. - Allow Gradle to sync dependencies.
- Create an emulator (Pixel 8 Pro, API 34 recommended) or connect a physical device.
- Click Run.
If running the Python AI component:
cd "Front+Back v1"
pip install -r requirements.txt
python main.py- Register/Login: Create an account to enable the "Favorites" and "Similar Artists" features.
- Search: Use the search bar to find artists (e.g., "Picasso", "Warhol").
- Explore: Click on an artist to view their bio and scroll through their artwork.
- Manage Favorites: Click the Star icon to add/remove artists from your dashboard.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
For support or queries, please open an issue on this repository.
