A web application that allows users to create virtual art exhibitions by curating artworks from the Metropolitan Museum of Art and Harvard Art Museums.
Visit the live application at: Exhibition Curator
- Search and explore artworks from multiple prestigious museums
- View detailed artwork information including high-resolution images
- Create personal exhibitions by selecting favorite artworks
- Navigate between artworks with previous/next functionality
- Sort and filter artworks by various criteria
- Responsive design for all device sizes
- Accessible user interface
- React 18
- React Router v6
- Tailwind CSS
- Lucide React Icons
- DND Kit for drag-and-drop functionality
- Metropolitan Museum of Art API
- Harvard Art Museums API
- Node.js (v14 or higher)
- npm or yarn
- Git
- Clone the repository:
git clone https://github.com/your-username/exhibition-curator.git
cd exhibition-curator
- Install dependencies:
npm install
- Create a
.env
file in the root directory and add your API keys:
REACT_APP_HARVARD_API_KEY=your_harvard_api_key
- Start the development server:
npm start
The application will be available at http://localhost:3000
To create a production build:
npm run build
- Base URL: https://collectionapi.metmuseum.org/public/collection/v1
- No authentication required
- Official Documentation
- Base URL: https://api.harvardartmuseums.org
- Requires API key
- Official Documentation
The application is deployed on Netlify. To deploy your own instance:
- Create a Netlify account
- Run
npm run build
to create a production build - Run
netlify deploy
and follow the prompts - For production deployment, use
netlify deploy --prod
This application follows WCAG 2.1 guidelines and includes:
- Proper heading hierarchy
- ARIA labels where necessary
- Keyboard navigation support
- High contrast text
- Alt text for images
- Focus indicators
exhibition-curator/
├── public/
├── src/
│ ├── api/ # API integration
│ ├── components/ # React components
│ ├── contexts/ # Context providers
│ ├── hooks/ # Custom hooks
│ ├── utils/ # Utility functions
│ ├── App.js
│ └── index.js
├── package.json
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Metropolitan Museum of Art for their open access API
- Harvard Art Museums for their comprehensive API
- Lucide for the beautiful icons
- Tailwind CSS for the styling system