This application shows a small portion of my habilities to create modern web applications using Vue3 (Nuxt.js) and Laravel.
Inside this directory lies a conventional Nuxt.js (Vue3) application, showcasing the frontend aspect of the project. All designs are custom made components using TailwindCSS and the frontend is server by Vercel.
Contained within this folder is a freshly minted Laravel 11x application. I've meticulously restructured the folder layout to adhere to the Domain-Driven Design (DDD) pattern. Navigate through the 'modules' folder to discover tailored resources catering to distinct user types and functionalities. The backend is hosted in DigitalOcean using the Apps platform (to keep it simple) - check it out the Dockerfile under the root folder to see the backend build structure.
If you're like me and prefer to run backend resources (databases, api's and so on) on Docker, this folder has everything you gonna need to startup your application as quickly as possible for your development environemnt.
To the application work fully properly, you need to provide an AWS S3 bucket info:
#.env
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION="us-east-1"
AWS_BUCKET=In order to the frontend upload works, you need to define the CORS settings on your AWS S3 bucket:
[
{
"AllowedHeaders": [
"Authorization",
"Content-Range",
"Accept",
"Content-Type",
"Origin",
"Range"
],
"AllowedMethods": [
"GET",
"HEAD",
"POST",
"PUT"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"Content-Length",
"Access-Control-Allow-Origin",
"Content-Type",
"Access-Control-Expose-Headers",
"ETag"
],
"MaxAgeSeconds": 3000
}
]Build a simplified banking system
The system has 2 types of users
-
a customer
-
an admin
customer user stories:
-
a user can create a new account with username and password
-
a user starts with 0 balance
-
a user can deposit more money to his account by uploading a picture of a check and entering the amount of the check. if the check is approved by an admin, the money is added to the bank account.
-
to buy something, the user enters the amount and description; a user can only buy something if she has enough money to cover the cost.
-
a user can see a list of balance changes including time and description.
admin user stories:
-
an admin account is already created with a hard coded username and password.
-
an admin can see a list of pending check deposit pictures with amount and picture and click to approve or deny the deposit.
Simplifying Assumptions
- an admin can’t be also a customer
Submit app url and repo url to augusto@turnoverbnb.com