From d92563f77cdf47f6f9b9a1622e2d3c6eb3780467 Mon Sep 17 00:00:00 2001 From: aspasskiy Date: Thu, 2 Jan 2025 16:46:01 +0300 Subject: [PATCH] better readme.md --- readme.md | 147 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 105 insertions(+), 42 deletions(-) diff --git a/readme.md b/readme.md index 19e9d8f..b8221c0 100644 --- a/readme.md +++ b/readme.md @@ -1,77 +1,140 @@ -# Gerald - Feedback Application Server +# Gerald 🚀 -Gerald is an open-source Golang server designed to provide support for mobile apps by allowing users to submit feedback and upvote existing feedback. This server follows a clean architecture approach and utilizes the go-swagger library for API documentation and code generation. +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=flat&logo=docker&logoColor=white)](https://www.docker.com/) +[![Made with Love](https://img.shields.io/badge/Made%20with-❤-red.svg)](https://shields.io/) -## Features +Gerald is an awesome project that [brief description of what your project does]. -- Create feedback -- Get all feedback -- Upvote feedback -- Get feedback for a specific project +## 🌟 Features -## Getting Started +- Feature 1 +- Feature 2 +- Feature 3 +- [Add more features] + +## 🚀 Quick Start with Docker Compose ### Prerequisites -- Go 1.22 or later -- PostgreSQL database +- [Docker](https://docs.docker.com/get-docker/) +- [Docker Compose](https://docs.docker.com/compose/install/) ### Installation 1. Clone the repository: -bash -git clone https://github.com/your-username/gerald.git - -2. Navigate to the project directory: -bash +```bash +git clone repositorie cd gerald +``` +2. Create a `.env` file in the project root: +```bash +cp .env.example .env +``` -3. Install dependencies: -bash -go mod download +3. Configure your environment variables in `.env`: +```env +# Example configuration +POSTGRES_USER=gerald +POSTGRES_PASSWORD=yourpassword +POSTGRES_DB=geralddb +``` +4. Start the application: +```bash +docker-compose up -d +``` -4. Set up the PostgreSQL database and update the connection string in the configuration file. +That's it! 🎉 The application should now be running at `http://localhost:3000` -5. Run database migrations: -bash -make migrate +### Docker Compose Configuration +```yaml +# docker-compose.yml +version: '3.8' -6. Start the server: -bash -make run +services: + app: + build: + context: . + dockerfile: Dockerfile + ports: + - "3000:3000" + environment: + - NODE_ENV=production + depends_on: + - db + db: + image: postgres:14-alpine + environment: + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} + volumes: + - postgres_data:/var/lib/postgresql/data -The server will be running at `http://localhost:8080`. +volumes: + postgres_data: +``` -### API Documentation +## 🛠️ Development Setup -The API documentation is generated using go-swagger and can be accessed at `http://localhost:8080/swagger-ui/`. +For development, you can use the following command: +```bash +docker-compose -f docker-compose.dev.yml up +``` -### Configuration +## 📝 Additional Commands -The server configuration can be found in the `config.go` file. You can modify the settings according to your needs. +```bash +# Stop all containers +docker-compose down -### Testing +# View logs +docker-compose logs -f -Run the tests with the following command: -bash -make test +# Rebuild containers +docker-compose up -d --build +# Remove volumes +docker-compose down -v +``` -### Linting +## 🔍 Troubleshooting -Run the linter with the following command: -bash -make lint +### Common Issues +1. **Port conflicts** + ```bash + # Change the port mapping in docker-compose.yml + ports: + - "3001:3000" # Maps port 3000 from container to port 3001 on host + ``` -## Contributing +2. **Database connection issues** + - Ensure your `.env` file has the correct database credentials + - Check if the database container is running: `docker-compose ps` -Contributions are welcome! Please follow the [contributing guidelines](CONTRIBUTING.md) when submitting pull requests. +## 🤝 Contributing -## License +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Commit your changes (`git commit -m 'Add some amazing feature'`) +4. Push to the branch (`git push origin feature/amazing-feature`) +5. Open a Pull Request -This project is licensed under the [MIT License](LICENSE). \ No newline at end of file +## 📜 License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +## 🙏 Acknowledgments + +- Hat tip to anyone whose code was used +- Inspiration +- etc + +--- + +Made with ❤️ by [Oct App]