QuizIslamicAI is a Golang-based project that aims to revolutionize the learning experience by combining personalization and automated content creation using the latest AI technology.
To run the Golang application locally, follow these steps:
-
Make sure you have Go installed and have correctly configured the Go environment on your computer.
-
Open a terminal and navigate to your Golang project directory.
-
Run the following command to execute the application:
go run main.go
Alternatively, if you are using Air as a runner for hot reload:
air -c .air.toml
-
Your Golang application will be running and accessible at
http://localhost:8080/
.
The Postman API documentation can be accessed at the following link: Postman Documentation
This Golang application has been deployed to a public server with the IP address: http://44.206.239.176:8080/
. You can access the application using this link.
In this repository, we utilize GitHub Actions for Continuous Integration/Continuous Deployment (CI/CD) of the Golang application.
Every time there is a push to the main
branch, GitHub Actions will perform the following steps:
-
Checkout the source code from the repository.
-
Set up the SSH private key and allow access to the AWS server using webfactory/ssh-agent.
-
Pull from the repository on the AWS server to get the latest changes.
-
SSH to the AWS server, build a Docker image from the Golang code in the
/var/www/be-alta-quizislamic-ai/
directory, and run the Docker container using the newly created Docker image.
The GitHub Actions configuration can be found in the .github/workflows/go-push-docker.yml
file. You can customize the necessary steps for CI/CD according to your project's requirements.
Make sure you have set up the SSH_PRIVATE_KEY as a secret in your repository for successful SSH access to the AWS server.
Note: Ensure you have properly configured and set up the AWS server before performing CI/CD with GitHub Actions.
- Ide: Understand the initial idea behind QuizIslamicAI and what problem it aims to solve in the education sector.
- Repository: Set up the GitHub repository for the QuizIslamicAI project, including defining the project structure and initializing version control.
- User Login/Register: Implement the user login and registration functionality for CourseGenAI. Users should be able to create accounts and log in to access personalized learning content.
- CRUD (table apapun): Create basic CRUD operations for one of the tables in the database to efficiently manage data within the application.
- Postman: Set up Postman to test the APIs and ensure they are working correctly for CourseGenAI.
- Setup Docker: Dockerize the CourseGenAI application to make it easier to deploy and manage across different environments.
- Live di AWS: Deploy CourseGenAI live on AWS (Amazon Web Services) to make the application accessible to users over the internet.
- Continue Rest API: Continue working on the Rest API to enhance its functionality and make it more robust.
- Pagination: Implement pagination in CourseGenAI to efficiently handle large amounts of data and improve user experience.
- Middleware (JWT, Static): Set up middleware for CourseGenAI, such as JWT (JSON Web Tokens) for authentication and Static Middleware for serving static assets.
- Docs: Create comprehensive documentation for CourseGenAI, including API documentation and guidelines for developers who want to contribute to the project.