47 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Bitcoin Payment Checker
 | |
| 
 | |
| Bitcoin Payment Checker is a Go application that allows clients to pay for orders using Bitcoin. The application calculates the Bitcoin equivalent of the order amount, provides a wallet address for payment, and tracks the payment status.
 | |
| 
 | |
| ## Application Structure
 | |
| 
 | |
| The application is structured into several packages:
 | |
| 
 | |
| - `handler`: Contains the HTTP handlers for the application. The `OrderHandler` is responsible for processing new orders and calculating the Bitcoin price.
 | |
| - `services`: Contains various services used by the application, such as the `Order` service for managing orders and the `PriceConversor` service for converting USD to Bitcoin.
 | |
| - `main`: The entry point of the application. It sets up the database connection, initializes the services, and starts the HTTP server.
 | |
| 
 | |
| ## Key Files
 | |
| 
 | |
| - `handler/order.go`: Contains the `OrderHandler` which processes new orders. It calculates the Bitcoin price of the order, stores the order in the database, and renders an HTML page with the order details.
 | |
| - `main.go`: The entry point of the application. It sets up the database connection, initializes the services, and starts the HTTP server.
 | |
| 
 | |
| ## Running the Application
 | |
| 
 | |
| To run the application, you need to have Go installed. Then, you can run the application using the `go run` command:
 | |
| 
 | |
| ```bash
 | |
| go run main.go
 | |
| ```
 | |
| 
 | |
| This will start the application and listen for HTTP requests on the configured port.
 | |
| 
 | |
| ## Environment Variables
 | |
| 
 | |
| The application uses the following environment variables:
 | |
| ```
 | |
|     PAY_CHECKER_ENV: The environment the application is running in. If set to "dev", the application will load configuration from a .env file.
 | |
|     DB_ADDRESS: The address of the MongoDB database.
 | |
|     DB_NAME: The name of the MongoDB database.
 | |
|     ORDERS_COLLECTION: The name of the MongoDB collection for orders.
 | |
|     CONVERSOR_API: The API used for converting USD to Bitcoin.
 | |
|     RPC_HOST, RPC_AUTH, RPC_ZMQ, WALLET_ADDRESS: Configuration for the Bitcoin service.
 | |
|     MAIL_USER, MAIL_PASSWORD, MAIL_HOST, MAIL_PORT, MAIL_FROM, MAIL_TEMPLATES_DIR: Configuration for the mail service.
 | |
| ```    
 | |
| 
 | |
| ## Dependencies
 | |
| 
 | |
| The application uses several external packages:
 | |
| 
 | |
|     gofiber/fiber/v2: For building the HTTP server and handling requests.
 | |
|     go.mongodb.org/mongo-driver/mongo: For connecting to and interacting with MongoDB.
 | |
|     net/smtp: For sending emails. |