Chucky >> execute

I developed this project to practice my knowledge of JavaEE, Servlet, API usage (with GSON), HTML, CSS and javaScript, JSTL. It was the first project I developed in a while, so it was good to start with something simple and concise to get me going. Source code

SimpleForm >> execute

This is a registration form in which I experimented with technologies such as JDBC, CRUD, SQL, MVC, JSP, Web Design,JavaScript, REGEX, Servlet, encryption among others. If you would like an ADMIN user for the form, please contact me. Also here is the source code.

Snacky

This is a RESTFUL API. It has a collection of snacks you can search. I have 3 endpoints you can use to make requests, the response is negotiable, you can get your snacks either in JSON or XML. However, the default is JSON. To change content type you can add a header to your request -> -H "Accept: application/xml

Unfortunately, I had to take this API down from my server :(

It was deployed in a EC2 instance with the minimum requirements (the cheapest one) and because I had to install a second API in that VM, I did not have resources enough to keep both Spring Applications running.

My greatest restriction now is the cost it takes to keep an EC2 instance up and running, I, in no way can upgrade that server ($$$). Maybe in the future.

I will leave these instructions on how to use it here, however, know this service is no longer running. You can still download the source code and run in your machine though. If any questions please contact me.

>>>>>>>>>>>>>>>>>

I used Spring Boot, Spring MVC, Hibernate to develop this project. For source code click here

Here are some calls you can make to this API

List all snacks
https://deborasroka.com/api/v1/snacks/all

List BY ID
https://deborasroka.com/api/v1/snacks/1

List by Flavor
Available: Sweet, Salty, Sour, Bitter, Spicy Just send your parameter filled with 1. Example sweet = 1
https://deborasroka.com/api/v1/snacks/byflavor?sweet=1&salty=1&sour=0&bitter=0&spicy=0
https://deborasroka.com/api/v1/snacks/byflavor?sweet=1

Example using CURL
curl https://deborasroka.com/api/v1/snacks/1 -H "Content-Type: application/xml" -H "Accept: application/xml"

Banky

Banky is a restful API that seeks to emulate, the behavior of a bank account. It performs operations like creating bank accounts, transactions and users.

This is the very first version of it and I am planning to expand it. It was very fun to build and to explore.

I used Spring Boot, WEB to create it, and this time I opted for a non relational database, MongoDB, instead of a relational one. Since this was an experiment to try NoSQL, I would say that Mongo was definetely not a good choice for this project. In version 2 I will be swicthing to MySql since I already have it installed in my EC2 instance. The good thing about Mongo though, is that I used the Mongo Atlas version, so I did not need to install a Mongo instance on my EC2 instance.

I also added a security module that used Spring Security to generate JWT tokens in order to make calls. source in github

Now let's get to it >>>>>>>>>>>>>>>>>

Authentication:

First thing you will need to do here is to generate a JWT token to authenticate your calls to the API, those particular endpoints are public, so no token needed

  • post-> Create user
    https://deborasroka.com/api/auth/signup
  • post-> Generate Token
    https://www.deborasroka.com/api/auth/signin

Customer Manipulation:

This endpoint is aimed at creating end users that will eventually use the bank accounts, the endpoint requires more detailed information.

  • post-> Create customer json call and body
    https://deborasroka.com/api/v1/banky/addBankUser
  • Authorization, in order to submit the call you will need to add your authentication token to the header
    https://www.deborasroka.com/api/auth/signin
  • get-> Find user by email: https://deborasroka.com/api/v1/banky/findUser?email=racoon@email.com
  • get-> Find user by ID: https://www.deborasroka.com/api/v1/banky/findAllAccountsByUserID/{ID}
  • delete-> Delete user: https://www.deborasroka.com/api/v1/banky/deleteUser/{ID}
  • put-> Update user: https://www.deborasroka.com/api/v1/banky/updateUser/{ID}

Savings/default account manipulation:

Remember to add your authorization token to the headers of your call

  • post-> Create account: https://www.deborasroka.com/api/v1/banky/createAccount
    {
    "currentBalance": 1250.3,
    "availableBalance": 1250.3,
    "userID":"64d288a10778872343d50c6d",
    "accountType": "SAVINGS"
    }
  • get-> Find account by ID: https://www.deborasroka.com/api/v1/banky/findAccountByID/64b9b1abb63d051d20a01c0c
  • get-> Find all accounts from user: https://www.deborasroka.com/api/v1/banky/findAllAccountsByUserID/{ID}
  • get-> Find all saving accounts: https://www.deborasroka.com/api/v1/banky/allAccounts
  • put-> Update account: https://www.deborasroka.com/api/v1/banky/updateAccount
  • delete-> Delete account: https://www.deborasroka.com//api/v1/banky/deleteAccount/{ID}

Checking accounts account manipulation:

Remember to add your authorization token to the headers of your call

  • post-> Create account: https://www.deborasroka.com/api/v1/banky/checking/createCheckingAccount
    {
    "overdraftLimit": 90000,
    "currentBalance": 36998.2,
    "availableBalance": 5465467684.3,
    "userID":"64d9aa677978a66bb14c5c71",
    "accountType": "CHECKING"
    }
  • get-> Find checking account by ID: https://www.deborasroka.com/api/v1/banky/checking/findCheckingAccountByID/{ID}
  • get-> Find all checking accounts from user: https://www.deborasroka.com/api/v1/banky/findAllAccountsByUserID/{ID}
  • get-> Find all checking accounts: https://www.deborasroka.com/api/v1/banky/checking/allCheckingAccounts
  • put-> Update account: https://www.deborasroka.com/api/v1/banky/checking/updateCheckingAccount
  • delete-> Delete account: https://www.deborasroka.com/api/v1/banky/checking/deleteCheckingAccount/{ID}

Transaction creation/manipulation:

Remember to add your authorization token to the headers of your call

  • post-> Add transaction: https://www.deborasroka.com/api/v1/banky/addTransaction
    {
    "accountID":"64c0872ed8c0265ec8325ee4",
    "transactionType":"credit",
    "description":"paid mortgage",
    "value":15.2,
    "status":"pending"
    }
  • get-> Find all transactions by account: https://www.deborasroka.com/api/v1/banky/listAllTransactionsByAccount/{ID}
  • get-> List all transactions: https://www.deborasroka.com/api/v1/banky/listAllTransactions
  • get-> Find all checking accounts: https://www.deborasroka.com/api/v1/banky/checking/allCheckingAccounts
  • put-> Update account: https://www.deborasroka.com/api/v1/banky/updateTransaction
  • delete-> Delete account: https://www.deborasroka.com/api/v1/banky/deleteTransaction/{ID}