This project is based on the Build with Angga learning flow, enhanced with custom improvisations. It involves developing a full-stack web application with a Vue.js-based front-end, a Golang-based back-end, and a MySQL database.
-
Slicing HTML to Vue Template
- Create the user interface using HTML and CSS, then integrate it into Vue.js components for a dynamic and responsive layout.
-
Back-End Development with Golang
- Build efficient and scalable APIs using Golang to connect the front-end and the database.
-
Front-End Development with NuxtJS
- Develop the front-end using NuxtJS, a Vue-based framework, for a modern, server-side rendered (SSR) experience.
-
Personal Improvisations
- Added custom features and optimizations to improve functionality, user experience, and performance.
- HTML/CSS: For slicing and styling the front-end layout.
- Vue.js: Version
3.5.13
for creating modular UI components. - Golang: Version
1.22.4
for building the back-end API. - NuxtJS: Version
3.14.1592
for creating a modern and SEO-friendly front-end application. - MySQL: Version
8.0
as the database solution.
-
Docker & Docker Compose
- Docker is used to containerize the services for easier development and deployment.
-
Node.js (v18.x or later)
- Required for running the NuxtJS frontend container.
-
Go (v1.22.4 or later)
- Required for running the Golang backend container.
-
Database
- The project uses MySQL 8.0, managed through Docker.
git clone https://github.com/fauzan264/crowdfunding.git
cd crowdfunding
- Create a
.env
file in the root directory by copying the example file:
cp .env-example .env
- Do the same for the backend directory:
cp backend/.env-example backend/.env
Ensure Docker is installed and running, then execute the following command:
docker-compose up --build
Docker will handle the following:
- Downloading the necessary images
- Building the containers
- Starting the services This process might take a few minutes. Once completed, the application will be ready to use.
- Frontend: Open your browser and navigate to http://localhost:3000.
- Backend API: Access the API at http://localhost:8080.