This project was completed as part of the Java Web Developer Nanodegree,
through the Udacity online education provider. It was the first project (of four) in this particular
Nanodegree program, and demonstrates the basic features of the Java Spring Boot framework in a full-stack web app. The application was intended to
serve as a proof-of-concept (POC) app at a startup that intends to compete with online services like Dropbox - by providing file, note, and
credential storage for a given user. It uses Spring Security to validate users, Hibernate to "persist" data, Thymeleaf to template the frontend UI from the backend data
model, and Bootstrap to accelerate and standardize frontend development, and Selenium and JUnit for integration testing.
The project is hosted on AWS as an EC2 server instance, and is deployed to the domain www.lovelyhoneypot.world -
this website name is a reference to how storing all this data in one place provides a prime target for hackers and other malicious actors on the Internet, who
look for servers rich in user information ("honeypots") to exploit and gain access to passwords and user accounts - like those included in the "Credentials" storage feature of
this application. So use this application at your own risk - it was intended as a POC and an exhibition of my new Spring Boot skills, not as a secure service. Any
information you put on this app is also liable to be deleted at any time, since I may need to reboot the server and that will clear all stored data - again, this
is not a fully-functional, user-ready app.
The next steps for this app would be to add data persistence,
so that the users, notes, files, and credentials are not
deleted from memory whenever the app is restarted on the server,
and to make the app more scalable. However, both these steps
cost significantly more money - since they both involve adding
more server instances with a load balancer and adding an external
database to store the data. So as a POC app,
this works just fine, because it demonstrates the basic functionality
of the app, without necessarily having a massive user base or a
large-scale deployment. Don't expect much to change with this
app in the near future - I have other projects that can be
leveraged better to work on!
My code for this "honeypot" app is available here on GitHub, and the app itself is available
here.