Git Product home page Git Product logo

springboot-picture-publishing-service's Introduction

Picture Publishing Service

A demo web application for a Picture Publishing Website built with SpringBoot.

Overview

The client needs a website where registered and logged-in users can upload pictures for acceptance or rejection.
An administrator will log in and review all submissions.
Accepted pictures will be assigned a URL which can be accessed by all users (without login).
Rejected pictures have their pictures removed, but the metadata remains.

Detailed Requirements

  • End-users can register.
    • Registration information: email address, password
  • Landing page shows all accepted pictures' URLs
  • NON-logged in users can click on the links to see the pictures
  • Logged-in users can upload a picture along with the following fields:
    • description
    • picCategory
  • only three fixed categories: living thing, machine, nature
  • attachment (up to 2 Mb) (jpg, png, gif only)
  • An administrative appUser can login to a separate admin page
  • a built-in admin with a username "admin" and password "admin123"
    • Administrative appUser sees list of uploaded pictures
    • list of all uploaded, unprocessed pictures
    • anything that was accepted or rejected does not show up here
    • Admin can select a picture to process it
    • opens a new page showing description, picCategory, picture dimensions, and display picture
    • has two buttons "Accept", "Reject".
      • if "Accept" is pressed, a URL is autogenerated for that picture, and can be displayed on the Landing page.
      • if "Reject" is pressed, the picture file will be removed from storage, and the data record marked as "Rejected".

Nonfunctional Requirements

  • the backend database should be an open source standard SQL variety of PostgreSQL
  • must provide scripts for deployment and running unit tests

Expected Deliverables

  • the entire project: code and database
  • instructions on how to deploy it
  • REST API documentation (Swagger preferred, but anything clear is fine)

Steps to deploy

  • Just load this project on your preferred IDE, e.g., Intellij or Netbeans ... etc., and Maven will load all dependencies and configure directories.
  • This project uses an embedded "h2 database" so there's no need for a dbms e.g., MySQL or Postgres ...etc.
  • There are 2 provided users by default
  • Run this test for the DevBootstrap whenever passwords are changed.

Authors

Linkedin

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.