This repository is based on the Pepper Garden App written in Java.
- Installation
- Components
- Features
- Tasks
- Dependencies
- Project-Notes
- Resources-Used
- Further-Documentation
- Related Repositories
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.
- Java 14
- SpringBoot 2.3.0
- Spring Security
- Maven 3.6.3
- RESTful APIs
- MongoDB Atlas
- Web Tokens
- Bootstrap CDN
- Docker
- AWS
- Shell Scripting
- 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
- 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
- Login Page
- Backend
- MongoDB/RESTful APIs
- User
- Create new user
- Update fields
- Login Authentication
- Peppers
- POST
- GET
- PUT
- DELETE
- User
- Project Functionality
- Blog Post
- Post text
- Edit text
- Delete text
- Post image
- Edit image title/caption
- Delete image
- Manageable permissions to POST/PUT/DELETE
- Blog Post
- Spring Security
- JWT
- Security Controllers
- Security Payload Models
- Security Services
- Other Applications
- Web Scraper
- JSON Parser/Poster
- MongoDB/RESTful APIs
- 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
- 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
- Bezkoder - Spring Boot Token based Authentication with Spring Security & JWT
- Baeldung - Spring Actuator
- Baeldung - Upload and Retrieve Files
- bluematador - How to deploy an app to AWS: Route 53 and DNS explained