A modern web application for exploring fine art collections, built with Next.js 14 and TypeScript.
- Browse and discover artworks from various artists and periods
- View detailed artist profiles with biographical information
- Explore artwork details with high-resolution images
- Responsive design for optimal viewing on all devices
- Integration with WikiArt API for extensive art database access
- Server-side rendering for improved performance
- Authentication system using NextAuth.js
- Frontend: Next.js 14, TypeScript, TailwindCSS
- UI Components: Shadcn UI, Lucide Icons
- Database: PostgreSQL with Drizzle ORM
- Authentication: NextAuth.js
- API Integration: WikiArt API
- Styling: Tailwind CSS with custom components
- Node.js 18+
- PostgreSQL database
- Clone the repository:
git clone https://github.com/ByalykT02/DP_24-F_byalykt
- Install dependencies:
cd galleryglobe
npm install
- Set up environment variables:
cp .env.example .env
Fill in the following variables:
DATABASE_URL=
POSTGRES_PRISMA_URL=
POSTGRES_URL_NO_SSL=
POSTGRES_URL_NON_POOLING=
POSTGRES_USER=
POSTGRES_HOST=
POSTGRES_PASSWORD=
POSTGRES_DATABASE=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
WIKIART_ACCESS_KEY=
WIKIART_SECRET_KEY=
- Run database migrations:
npm run db:push
- Start the development server:
npm run dev
src/
βββ app/
β βββ (protected)/ # Protected routes (collections, profile, etc.)
β βββ (public)/ # Public routes (explore, categories)
β βββ api/ # API routes
β βββ artists/ # Artist-related pages
β βββ artworks/ # Artwork-related pages
β βββ auth/ # Authentication pages
βββ components/
β βββ auth/ # Authentication components
β βββ collections/ # Collection-related components
β βββ common/ # Shared components
β βββ form/ # Form components
β βββ home/ # Homepage components
β βββ preferences/ # User preference components
β βββ profile/ # Profile management components
β βββ recommendations/# Recommendation components
β βββ search/ # Search components
β βββ ui/ # UI components
βββ hooks/ # Custom React hooks
βββ lib/
β βββ types/ # TypeScript interfaces
β βββ utils/ # Utility functions
βββ server/
βββ actions/ # Server actions
βββ db/ # Database configuration
- Create and manage personal collections
- Toggle collection visibility (public/private)
- Add/remove artworks from collections
- Browse public collections from other users
- Edit profile information
- Change password securely
- View personal favorites
- Track viewing history
- Manage collections
- Real-time artwork and artist search
- Search results categorization
- Quick navigation to results
- Browse popular artworks
- View detailed artwork information
- Similar artwork recommendations
- High-resolution image viewing
- Browse popular artists with biographical information
- View artist's complete artwork collection
- Timeline of artist's periods and career
- Related artists and influences
npm run test
npm run lint
npm run build
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.
- WikiArt API for providing the artwork database
- Next.js team for the amazing framework
- Shadcn for accessible component primitives
Project Link: https://github.com/ByalykT02/DP_24-F_byalykt