Real-world project from Java Web Developer Nanodegree at Udacity.
A web-based personal storage application that includes three user-facing features:
- Simple File Storage: Upload/download/remove files
- Note Management: Add/update/remove text notes
- Password Management: Add/update/remove website credentials
demo.mov
- Build the fully-functional web app based on
Spring Boot
. - Implement dynamic page contents using
Spring MVC
andThymeleaf
. - Make calls to the
H2
in-memory database withMyBatis
Mappers. - Manage user access with
Spring Security
and passwordHashing
. - Store credentials using
Encryption
and view credentials afterDecryption
. - Use
Bootstrap
as a framework for HTML templates and the 404 not found page. - Use
JavaScript
function to show note modal and credential modal, as well as redirect to the selected tab. - Write tests with
JUnit
, and integrateSelenium
to simulate a user's actions in an automated browser.
- In the
root
directory:
$ git clone https://github.com/Foystor/SuperDuperDrive.git
- Get to the
cloudstorage
directory:
$ cd SuperDuperDrive/cloudstorage
- Build the project skip tests:
$ mvn clean package -Dmaven.test.skip
- Run the application:
$ java -jar target/cloudstorage-0.0.1-SNAPSHOT.jar
- Navigate to http://localhost:8080/login and enjoy the app ;)
- Users should not sign up with an existing username.
- A user should not upload two files with the same name.
- A user should not save two notes with the same title ignoring whitespaces from both ends.
- A user should not save two identical credentials ignoring whitespaces from both ends of the URL, Username and Password.
- Users should not upload without choosing a file.
- Users should not "save changes" without changing the note.
- Users should not "save changes" without changing the credential.