The Digital Art Curator is a web application that provides personalized art recommendations based on users' stylistic preferences. Powered by deep learning and recommendation algorithms, it curates art from various styles, artists, and genres, creating a tailored experience for art enthusiasts and collectors alike.
- Personalized Art Recommendations: Suggests artworks based on user-selected themes, styles, or artists.
- Interactive Exploration: Enables users to explore artworks dynamically and filter by different attributes.
- Data-Driven Insights: Visualizes user preferences and trends across artwork genres.
- Simple User Interface: Offers an easy-to-navigate experience with visually appealing art displays.
-
Frontend:
- React.js: Creates an interactive, responsive interface for browsing and filtering artworks.
- JavaScript/HTML/CSS: Core technologies for handling user inputs, image display, and layout.
-
Backend:
- FastAPI/Flask: Hosts the deep learning model and handles recommendation requests, ensuring fast and scalable API responses.
- TensorFlow/Keras: Runs the recommendation model for personalized art suggestions.
- Database (MongoDB): Stores artwork metadata and user preferences, enabling quick retrieval and filtering.
-
Data & Model:
- WikiArt Dataset: Provides various artwork images and metadata, offering rich training material.
- Recommendation Model: Uses a combination of collaborative filtering and content-based filtering to recommend relevant art pieces.
- Python 3.7+
- Node.js & npm
- MongoDB (or another database of choice)
-
Clone the Repository:
git clone https://github.com/your-username/digital-art-curator.git cd digital-art-curator
-
Backend Setup:
- Install Dependencies:
pip install -r requirements.txt
- Train/Load the Model:
- Train the recommendation model using the WikiArt dataset or load a pre-trained model.
- Place the model file in the
models
directory.
- Install Dependencies:
-
Database Setup:
- Import artwork metadata into MongoDB (or an alternative database) and ensure that it is accessible by the backend.
- Create a
.env
file in the root directory with:DATABASE_URL=mongodb://localhost:27017/artworks
-
Frontend Setup:
- Navigate to Frontend:
cd frontend
- Install Dependencies:
npm install
- Run Frontend:
npm start
- Navigate to Frontend:
-
Start the Backend Server:
- Return to the main directory and run:
python app.py
- Return to the main directory and run:
-
Open in Browser:
- Go to
http://localhost:3000
to interact with the application.
- Go to
- Select Preferences: Choose art preferences, such as style, color, and theme, from the dropdowns or input fields.
- Receive Recommendations: The app fetches relevant art pieces based on your preferences and displays them in an interactive gallery.
- Explore Artwork Details: Click on any artwork to view details, including artist, style, and related works.
User Input | Recommendation Based On |
---|---|
Style | Similar art style |
Artist | Art by the same or similar artists |
Color Scheme | Matching or complementary colors |
Popularity/Trend | Trending or popular artworks |
- Expanded Metadata: Add more data fields, such as time period and mood.
- Enhanced Recommendations: Use neural collaborative filtering for more refined recommendations.
- Social Features: Enable users to save, like, and share favorite artworks.
- Fork the repository.
- Create a new branch for your feature (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
This project is licensed under the MIT License.
- WikiArt Dataset for providing a variety of artwork images and metadata.
- TensorFlow and FastAPI for model deployment and API handling.
- Inspiration from recommendation engines and personalized content applications.