πŸ“¦ FarzadMohtasham / EventV8

EventV8 is a lightweight, open-source back-end application providing RESTful β€œevent” management functionality, built with the Go programming language and the Gin HTTP web framework

β˜… 0 stars β‘‚ 0 forks πŸ‘ 0 watching βš–οΈ MIT License
πŸ“₯ Clone https://github.com/FarzadMohtasham/EventV8.git
HTTPS git clone https://github.com/FarzadMohtasham/EventV8.git
SSH git clone git@github.com:FarzadMohtasham/EventV8.git
CLI gh repo clone FarzadMohtasham/EventV8
Farzad Mohtasham Farzad Mohtasham Update README.md f7a964d 5 months ago πŸ“ History
πŸ“‚ main View all commits β†’
πŸ“ api-test
πŸ“ db
πŸ“ middlewares
πŸ“ models
πŸ“ routes
πŸ“ tmp
πŸ“ utils
πŸ“„ .air.toml
πŸ“„ .gitignore
πŸ“„ api.db
πŸ“„ go.mod
πŸ“„ go.sum
πŸ“„ LICENSE
πŸ“„ main.go
πŸ“„ README.md
πŸ“„ README.md

EventV8

EventV8 is a lightweight and efficient event management REST API built with Go (Golang). It provides endpoints for creating, managing, and retrieving events, making it suitable for event scheduling applications, calendars, or booking systems.


Features

  • RESTful API design
  • Create, read, update, and delete events
  • Search and filter events by criteria
  • MySQL database integration
  • Built with performance and scalability in mind using Golang
  • Modular and maintainable codebase

Tech Stack

  • Language: Go (Golang)
  • Database: MySQL
  • Framework: Gin (for HTTP routing)
  • ORM: sqlx

Installation

Prerequisites

Ensure you have the following installed on your system:

  • Go (>= 1.20)
  • MySQL (>= 8.0)
  • Git

Clone the Repository

git clone https://github.com/FarzadMohtasham/EventV8.git
cd EventV8

Install Dependencies

go mod tidy

Configure Database

  • Create a MySQL database.
  • Update the config.yaml file (or .env if used) with your database credentials.
Example config.yaml:

database:
  host: localhost
  port: 3306
  user: root
  password: your_password
  name: eventv8

Run the Application

go run main.go

The server will start (default: http://localhost:8080).


API Endpoints

MethodEndpointDescription
POST/eventsCreate a new event
GET/eventsGet all events
GET/events/:idGet event by ID
PUT/events/:idUpdate event by ID
DELETE/events/:idDelete event by ID

Example Request

Create Event

curl -X POST http://localhost:8080/events \
-H "Content-Type: application/json" \
-d '{
  "name": "Tech Conference 2025",
  "description": "A conference about the latest in technology.",
  "location": "Berlin, Germany",
  "dateTime": "2025-10-12T10:00:00Z",
  "user_id": 1
}'


Project Structure

EventV8/
β”œβ”€β”€ main.go
β”œβ”€β”€ config/
β”œβ”€β”€ controllers/
β”œβ”€β”€ models/
β”œβ”€β”€ routes/
β”œβ”€β”€ utils/
└── go.mod


Contributing

Contributions are welcome! Please fork the repository and create a pull request.

Steps:

  • Fork the project
  • Create your feature branch (git checkout -b feature/AmazingFeature)
  • Commit your changes (git commit -m 'Add some AmazingFeature')
  • Push to the branch (git push origin feature/AmazingFeature)
  • Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.


Author

Farzad Mohtasham GitHub Profile