Skip to content

Readme update #1

@lowryel

Description

@lowryel

Thank you for sharing the link to your GitHub repository. I have looked at your project and I have some suggestions on how to improve your readme file.

First of all, I noticed that your readme file is not formatted properly. You should use markdown syntax to make your readme more readable and attractive. For example, you can use headings, lists, code blocks, and links to organize your information and highlight important parts. You can also add badges to show the status of your project, such as build, test, coverage, license, etc.

Secondly, I think you should add more information about your project, such as the motivation, the features, the challenges, the future plans, etc. This will help your potential users and contributors to understand your project better and appreciate your work. You can also add screenshots or gifs to demonstrate how your project works and what it looks like.

Thirdly, I suggest you add a section on how to contribute to your project. You can explain how people can report issues, suggest features, submit pull requests, follow code style, write tests, etc. You can also add a code of conduct and a license to your project to set the rules and expectations for your community.

Here is an example of how your readme file could look like:

eventSuite

Build Status
Test Coverage
License

eventSuite is an event management API built with Golang, Postgres, XORM, and Fiber framework. It allows users to create, manage, and attend events of various types and categories. It also supports ticketing, registration, and payment features.

Motivation

I created this project as a way to learn and practice Golang and web development. I wanted to build a full-featured and scalable API that can handle complex business logic and data models. I also wanted to explore different technologies and frameworks that can help me achieve my goals.

Features

  • CRUD operations for events, users, organizers, tickets, and registrations
  • Authentication and authorization using JWT and middleware
  • Validation and error handling using custom structs and methods
  • Database connection and ORM using XORM and Postgres
  • Routing and web framework using Fiber
  • Testing and coverage using Go testing and Codecov
  • Continuous integration and deployment using GitHub Actions

Installation

To install and run this project, you need to have the following tools and dependencies:

  • Golang
  • Postgres
  • XORM
  • Fiber
  • Other packages listed in go.mod file

You can clone this repository using the following command:

git clone https://github.com/lowryel/eventSuite.git

Then, you need to create a database and a user in Postgres and grant the user all privileges on the database. You can use the following commands as an example:

CREATE DATABASE eventsuite;
CREATE USER eventsuite WITH PASSWORD 'eventsuite';
GRANT ALL PRIVILEGES ON DATABASE eventsuite TO eventsuite;

Next, you need to create a .env file in the root directory of the project and add the following environment variables:

DB_HOST=localhost
DB_PORT=5432
DB_USER=eventsuite
DB_PASSWORD=eventsuite
DB_NAME=eventsuite
JWT_SECRET=eventsuite

You can change the values of these variables according to your configuration.

Finally, you can run the project using the following command:

go run main.go

This will start the server on port 3000. You can access the API using http://localhost:3000.

Usage

The eventSuite API offers the following endpoints:

  • /api/v1/events: GET, POST, PUT, DELETE methods for events
  • /api/v1/users: GET, POST, PUT, DELETE methods for users
  • /api/v1/organizers: GET, POST, PUT, DELETE methods for organizers
  • /api/v1/tickets: GET, POST, PUT, DELETE methods for tickets
  • /api/v1/registrations: GET, POST, PUT, DELETE methods for registrations
  • /api/v1/auth: POST method for authentication

You can use tools like Postman or curl to make requests and get responses from the API. Here is an example of how to create an event using curl:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d '{"title":"Golang Meetup","description":"A meetup for Golang enthusiasts","start_date":"2024-03-10T18:00:00Z","end_date":"2024-03-10T20:00:00Z","location":"Accra, Ghana","organizer_id":1}' http://localhost:3000/api/v1/events

This will return a response like this:

{
  "id": 1,
  "title": "Golang Meetup",
  "description": "A meetup for Golang enthusiasts",
  "start_date": "2024-03-10T18:00:00Z",
  "end_date": "2024-03-10T20:00:00Z",
  "location": "Accra, Ghana",
  "organizer_id": 1,
  "attendees": []
}

You can find more examples and documentation for the API in the Postman collection file.

Contributing

I welcome any contributions to this project, whether it is reporting issues, suggesting features, or submitting pull requests. Here are some guidelines on how to contribute:

  • To report an issue or request a feature, please use the issues tab on GitHub and follow the issue template.
  • To submit a pull request, please fork this repository and create a new branch for your changes. Then, push your branch to your fork and create a pull request from your fork to this repository. Please follow the pull request template and make sure your code passes the tests and checks.
  • To follow the code style, please use gofmt and golint tools to format and lint your code. You can also use pre-commit hooks to automate this process.
  • To write tests, please use the testing package and follow the naming convention of TestFunctionName. You can run the tests using go test ./... command and check the coverage using go test ./... -coverprofile=coverage.out and go tool cover -html=coverage.out commands.

Code of Conduct

Please read and follow the code of conduct for this project. This is to ensure a safe and respectful environment for everyone involved.

License

This project is licensed under the [MIT License]. See the [LICENSE] file for more details.

Source: Conversation with Bing, 3/3/2024
(1) GitHub - lowryel/eventSuite. https://github.com/lowryel/eventSuite.
(2) Releases · lowryel/eventSuite · GitHub. https://github.com/lowryel/eventSuite/releases.
(3) Projects · eventSuite · GitHub. https://github.com/lowryel/eventSuite/projects.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions