{"id":13806870,"url":"https://github.com/monarchmaisuriya/fiber-bootstrapped","last_synced_at":"2025-05-13T23:33:29.095Z","repository":{"id":224372477,"uuid":"762241851","full_name":"monarchmaisuriya/fiber-bootstrapped","owner":"monarchmaisuriya","description":"Toolkit for Go Projects","archived":false,"fork":false,"pushed_at":"2024-02-23T13:33:03.000Z","size":32,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T02:34:13.376Z","etag":null,"topics":["golang","jwt","mongodb","rbac"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monarchmaisuriya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-23T11:21:15.000Z","updated_at":"2024-09-02T09:47:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"63a08a2c-f261-4db4-a344-bf57473d4715","html_url":"https://github.com/monarchmaisuriya/fiber-bootstrapped","commit_stats":null,"previous_names":["ingeniousambivert/fiber-bootstrapped","monarchmaisuriya/fiber-bootstrapped"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monarchmaisuriya%2Ffiber-bootstrapped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monarchmaisuriya%2Ffiber-bootstrapped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monarchmaisuriya%2Ffiber-bootstrapped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monarchmaisuriya%2Ffiber-bootstrapped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monarchmaisuriya","download_url":"https://codeload.github.com/monarchmaisuriya/fiber-bootstrapped/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254043218,"owners_count":22004912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","jwt","mongodb","rbac"],"created_at":"2024-08-04T01:01:17.315Z","updated_at":"2025-05-13T23:33:24.084Z","avatar_url":"https://github.com/monarchmaisuriya.png","language":"Go","funding_links":[],"categories":["🚧 Boilerplates"],"sub_categories":["🌱 Third Party"],"readme":"# Fiber Bootstrapped - Go\n\n\u003e Fiber Bootstrapped: Your Comprehensive Toolkit for Go Projects, with a Single Codebase.\n\n## Features\n\n- [x] Authentication (JWT Auth)\n- [x] User Management\n  - [x] Email Verification\n  - [x] Password Reset\n- [x] Role-based access control (user/admin)\n- [ ] Email Notifications (Custom Mailer)\n- [ ] Distributed Tasks Queue, Scheduled Jobs ([asynq](https://github.com/hibiken/asynq))\n\n## Project Overview\n\nThis project consists of the following main components:\n\n1. **Main File**: `main.go` - Entry point of the application.\n\n2. **Source Code Directory** (`src`):\n\n   - This directory contains the source code of the application.\n   - It's organized into subdirectories based on different modules and components.\n\n3. **App Module** (`app`):\n\n   - Contains the core functionalities of the application.\n   - Subdirectories:\n     - `events`: Event handling related code.\n     - `helpers`: Utility functions for error handling and middleware.\n     - `hooks`: Hooks for service functionalities.\n     - `modules`: Modules like mailer.\n     - `schemas`: Schemas for defining data structures, organized by entity types.\n\n4. **Services** (`services`):\n\n   - Contains business logic for various services.\n   - Subdirectories:\n     - `auth`: Authentication related services.\n     - `users`: User related services.\n\n5. **Core Components** (`core`):\n   - Core functionalities of the application.\n   - Subdirectories:\n     - `app`: Custom app functionalities.\n     - `configuration`: Configuration handling.\n     - `database`: Database initialization.\n     - `events`: Event handling core.\n     - `server`: Server setup and initialization.\n     - `service`: Core service functionalities.\n\n## Project Directory Structure\n\n```\n.\n├── go.mod\n├── go.sum\n├── main.go\n└── src\n├── app\n│ ├── app.go\n│ ├── events\n│ │ └── service.events.go\n│ ├── helpers\n│ │ ├── error.helper.go\n│ │ └── middleware.helper.go\n│ ├── hooks\n│ │ └── service.hooks.go\n│ ├── modules\n│ │ └── mailer.module.go\n│ ├── schemas\n│ │ ├── auth\n│ │ │ ├── auth.schema.go\n│ │ │ └── manage\n│ │ │ └── auth_manage.schema.go\n│ │ └── users\n│ │ └── users.schema.go\n│ ├── services\n│ │ ├── auth\n│ │ │ ├── build\n│ │ │ │ └── auth.build.go\n│ │ │ ├── controllers\n│ │ │ │ └── auth.controller.go\n│ │ │ └── utils\n│ │ │ └── auth.utils.go\n│ │ ├── services.go\n│ │ └── users\n│ │ ├── build\n│ │ │ └── users.build.go\n│ │ └── controllers\n│ │ └── users.controller.go\n│ └── utils\n│ └── shared.util.go\n└── core\n├── app.core.go\n├── configuration.core.go\n├── database.core.go\n├── events.core.go\n├── server.core.go\n└── service.core.go\n```\n\n## Todo\n\n- [ ] Add more data validation ([validator](https://pkg.go.dev/github.com/go-playground/validator/v10)).\n- [ ] Support for logging to files, databases or external services.\n- [ ] Publish Create/Read/Update/Delete events on service method calls.\n- [ ] Support for bulk Create/Update/Delete operations.\n- [ ] Support for MongoDB Aggregation Queries via Service interface.\n- [ ] WebSockets or Server-Sent Events (SSE) support for real-time communication.\n- [ ] Unit tests and end-to-end tests.\n- [ ] Dockerize project.\n\n## Usage\n\n1. Make sure you have [Go](https://go.dev/) (and [MongoDB](https://www.mongodb.com/) for local instances) installed.\n\n2. Install your dependencies.\n\n   ```bash\n   go mod vendor\n   ```\n\n3. Configuring the server with environment variables\n\n   - Create a `.env` file in the root\n   - Copy the values from `.env.sample` into the `.env` file and populate it accordingly.\n\n4. Start your server.\n\n```bash\n go run main.go\n```\n\n## Testing\n\n_Implement Tests_\n\n## Contributing\n\nContributions are welcome. Please follow the existing code style and conventions.\n\n## Credits\n\n### Acknowledgements\n\nThe project architecture and codebase is heavily inspired by [feathersjs](https://www.feathersjs.com/).\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonarchmaisuriya%2Ffiber-bootstrapped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonarchmaisuriya%2Ffiber-bootstrapped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonarchmaisuriya%2Ffiber-bootstrapped/lists"}