Giter VIP home page Giter VIP logo

super-drive's Introduction

Super Drive

GitHub username: antonio36alv

Spring Boot Badge     Thymeleaf Badge

Deployed Website - Hosted on Heroku which goes into sleep mode if website hasn't been used for 30 minutes, so you may have to give it a bit to come up.

My GitHub

Login Screenshot

Description

A project that I built as part of my Udacity Java Web Developer course. For specifications/instructions you can find them here or in the Instructions.md file. This website is built with Spring Boot and Thymeleaf. It allows a user to store files, notes, and login credentials for other websites. After the project was completed I made some changes to my liking. The instructions called for an encrypted password to be shown, when viewing all the passwords stored. I changed it to appear as a hidden password (dots instead of alphanumeric characters and symbols). Then naturally, I added a way for the user to show/hide the password and a button to copy it. I also added a way for when a user returns to the home page (where files, notes and credentials are stored) the last tab they were on automatically displays.

Installions/Requirements

  • Java 11+

  • Maven

  • All the dependencies included within the pom.xml file. IntelliJ is my preferred IDE, which takes care of importing dependencies present in the pom.xml.

To run tests you will also need:

  • Geckodriver

  • Firefox

Or if you have docker you can run the GithubActionsTests.java test class. This test class uses Testcontainers, which is a testing library for java. In this case

Testcontainers initilizes a Docker container that runs Selenium Web Driver and Firefox. More about Testcontainers here. To run

the GithubActionsTests.java test class through maven cli run mvn clean test -Dtest=GithubActionsTests.

Features

  • Spring MVC

  • Thymeleaf

  • Spring Security

  • MySQL

  • MyBatis (ORM)

  • Credential Storage with password encryption

  • User Authentication - passwords are hashed and salted

  • Testcontainers - info

  • Github Actions Workflow

Tests

This will work if you have firefox and geckodriver installed on your system.

You can run tests via your IDE or with Maven CLI with:

mvn clean test -Dtest=CloudStorageApplicationTests

However, if you have Docker there is a different test class that uses Testcontainers.

You may run this by using Maven CLI as so:

mvn clean test -Dtest=GithubActionsTests

This avoids the need to install Firefox and geckodriver wherever you may need to run this.

The test class with Testcontainers was implemented as a means to run this test class in

Github Actions without needing to install and configure Firefox and geckodriver.

Github Actions/Workflow

This repository contains a Github Actions workflow that builds and simultaneously runs tests (te test class that uses Testcontainers). Once the build job finishes

(builds successfully and tests pass), this triggers the integration job. The integration job simply creates a pull request and merges it inot master via the Github API,

by using cURL. The only setup needed for this workflow is to set up the Github Personal Access Token in the secrets section of the settings. Instructions on creating a

personal access token can be found here.

super-drive's People

Contributors

antonio36alv avatar

Watchers

James Cloos avatar  avatar

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.