Code Monkey home page Code Monkey logo

art-gallery's Introduction

Art Collections

Inspired by Google Arts and Culture, this web application is a platform with artworks inventory for both art providers and audiences to search, collect, curate, and display.

The aim is to facilitate the exposure of artworks that mostly sit in a warehouse or studio, to increase the interaction between arts and the audience, and create the profile of a piece of work.

  • Administrators can curate online-exhibitions, manage and organize artworks and creators introductions.

  • Users can create private or public collections, and add works into collections or favorite list, whenever visiting an exhibition or simply searching for the perfect works that match their taste.

Demo

Online-demo

Imgur

Imgur

Imgur

Imgur

Imgur

ERD

ERD

  • The main content provided by administrator involves three main tables, Exhibition, Artwork, and Artist.
  • Both Exhibition & Artwork, Artwork & Artist have many-to-many relationships, as works are allowed to display in different exhibition and artworks can be created by multiple artists.
  • Table Exhibition, Artwork, and Artist all have multiple images belonging to them.
  • Artwork table has additional relation with Subject and Media, belongs to many subjects and belongs to one media.
  • Collection is another table created by and belongs to an user, with various works that can be added to different collections.

Features

User

  • Guest users can browse public exhibitions, artworks, and public collections.
  • Search for artwork with multiple filters: name, artist, media, size, create year, shape, and subjects.
  • Artwork introduction connects with related subjects, media, and creator.
  • Artist personal page with biography, all works, media, subjects, and exhibitions.
  • Works, exhibitions, artists, subjects, media are all interconnected.
  • Browse other users' public collections.

Logged-in User

  • All above features
  • Favorite List:
    • Add works to their favorite list (private).
  • Collections:
    • Create their own collections, manage privacy, edit description, and delete it.
    • Add or remove artworks to their own collections wherever in this website.
  • Reservations & payment:
    • Make a reservation with a collection list, and pay the fee to complete booking.
  • Edit profile

Admin

  • Create, edit, and delete artwork information and images.
  • Create, edit, and delete exhibitions information and image.
  • Search and select artworks from inventory, and add to exhibitions.

API

  • Sign up and login with JWT
  • Get exhibitions
  • Get and search for artwork

Future work

User

  • Edit one's own profile
  • Add reservation function.
  • Add exhibition records to individual artwork page.

Admin

  • Create, edit, and delete artist data and related images.
  • Create, edit, and delete subject data.
  • Read the summary table with viewCounts and total of joinedCollection and addedFavorite of each work.
  • Create QRcode of artwork page, and export all QRcode of works joined in certain exhibition.

Installation

  • Run locally
  1. Clone this repository with terminal:

    $ git clone https://github.com/smilingfroggy/Art-Gallery.git

  2. Install packages:

    $ cd Art-Gallery

    $ npm install

  3. Create database and insert seeder

    $ npm run rebuildDB

  4. Create .env file to set up environment variables

    $ touch .env

    To upload image with admin account, login and create applications at https://imgur.com to get ClientID for .env file. Reservation functions require NewebPay MerchantID, hash & IV. Execute ngrok.exe and get URL.

  5. Run it

    $ npm run dev

  6. View the website at: http://localhost:3000

  7. Register an account or use seed accounts to login

Dependencies

  • Node.js
  • MySQL
  • Sequelize, Sequelize-cli
  • Express.js
  • Express-handlebars
  • Express-session
  • bcryptjs
  • connect-flash
  • cors
  • dotenv
  • faker
  • method-override
  • multer
  • imgur
  • passport
  • passport-local
  • passport-jwt
  • xlsx

Dev Dependencies

  • chai
  • mocha
  • nyc
  • sinon
  • supertest

art-gallery's People

Contributors

smilingfroggy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.