connellboyce / pepper-garden

Full stack Spring web application for the use of sharing/updating knowledge on growing peppers

Home Page:http://www.pepper-garden.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pepper Garden App

This repository is based on the Pepper Garden App written in Java.

Table of Contents

  1. Installation
  2. Components
  3. Features
  4. Tasks
  5. Dependencies
  6. Project-Notes
  7. Resources-Used
  8. Further-Documentation
  9. Related Repositories

Installation

Clone the repository

$ git clone https://github.com/connellboyce/pepper-garden.git

Open the project in an IDE and use Maven to clean and install.

$ mvn clean
$ mvn install

Still using your IDE, run the project through Maven and Spring Boot.

$ mvn spring-boot run

Do NOT run the project through the command line, or it will likely require a computer to restart or shut down to terminate the process.

Navigate to localhost:9999 on your web browser.

http://localhost:9999

When finished, use your IDE's stop button to terminate the process.

Components

  • Java 14
  • SpringBoot 2.3.0
  • Spring Security
  • Maven 3.6.3
  • RESTful APIs
  • MongoDB Atlas
  • Web Tokens
  • Bootstrap CDN
  • Docker
  • AWS
  • Shell Scripting

Features

  • View database of peppers
  • View information when selecting a specific item
  • Add/View images
  • Add/View new varieties/crossbreeds
  • View viability by zone
  • View pictures by zone
  • Operate in web-based form
  • Save users and their information to database
  • Include CRUD case using RESTful APIs

Tasks

  • Basic SpringBoot Project Initialization
    • Maven Functionality
    • MongoDB pairing
    • Dependencies Declared
    • Set up start/stop for server hosting
  • UI / UX
    • Login Page
      • Login/Register Account
      • Aesthetic design
    • Dashboards
      • Navbar
      • Traversible pepper "dictionary"
      • Feed
        • View pictures of peppers (with titles/captions)
        • Written posts
        • Tag implementation
        • Make new post
        • Comment
      • Aesthetic design
    • My Profile
      • Changeable profile picture
      • Change fields options
      • Aesthetic design
  • Backend
    • MongoDB/RESTful APIs
      • User
        • Create new user
        • Update fields
        • Login Authentication
      • Peppers
        • POST
        • GET
        • PUT
        • DELETE
    • Project Functionality
      • Blog Post
        • Post text
        • Edit text
        • Delete text
        • Post image
        • Edit image title/caption
        • Delete image
      • Manageable permissions to POST/PUT/DELETE
    • Spring Security
      • JWT
      • Security Controllers
      • Security Payload Models
      • Security Services
    • Other Applications
      • Web Scraper
      • JSON Parser/Poster

Dependencies

  • org.springframework.boot
    • Spring Boot Starter Data MongoDB
    • Spring Boot Starter Security
    • Spring Boot Starter Web
    • Spring Boot Starter Thymeleaf
    • Spring Boot Starter Validation
    • Spring Boot Starter Test
      • Excludes: JUnit Vintage Engine
    • Spring Security Test
    • Spring Boot DevTools
  • io.jsonwebtoken
    • JJWT
  • javax.validation
    • Validation API
  • jakarta.xml.bind
    • Jakarta XML Bind-API
  • org.glassfish.jaxb
    • JAXB Runtime

Project Notes

  • Spring Security set up through MongoDB with 3 possible roles
    • Moderator, User, Admin
  • UI Handled with Thymeleaf and Bootstrap
  • MongoDB connection handled through MongoDB cloud (Atlas).
  • Dependencies Jakarta XML Bind-API and JAXB Runtime are to resolve a Java 14 issue where a class could not be found.
  • AWS Credentials must be refreshed fairly often

Resources-Used

Further-Documentation

Related Repositories

About

Full stack Spring web application for the use of sharing/updating knowledge on growing peppers

http://www.pepper-garden.com/


Languages

Language:Java 53.0%Language:JavaScript 28.5%Language:HTML 15.3%Language:CSS 1.9%Language:Shell 1.1%Language:Dockerfile 0.2%