{"id":37166248,"url":"https://github.com/devanfer02/ratemyubprof","last_synced_at":"2026-01-14T19:41:57.619Z","repository":{"id":287223561,"uuid":"948619543","full_name":"devanfer02/ratemyubprof","owner":"devanfer02","description":"rate my university brawijaya professors","archived":false,"fork":false,"pushed_at":"2025-11-15T22:49:10.000Z","size":343,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-16T00:21:54.054Z","etag":null,"topics":[],"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/devanfer02.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-14T16:49:41.000Z","updated_at":"2025-11-15T22:49:13.000Z","dependencies_parsed_at":"2025-10-17T07:29:33.594Z","dependency_job_id":"bb4e7fe5-ff2f-4c91-9add-fd58ff163dd5","html_url":"https://github.com/devanfer02/ratemyubprof","commit_stats":null,"previous_names":["devanfer02/ratemyubprof"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devanfer02/ratemyubprof","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanfer02%2Fratemyubprof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanfer02%2Fratemyubprof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanfer02%2Fratemyubprof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanfer02%2Fratemyubprof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devanfer02","download_url":"https://codeload.github.com/devanfer02/ratemyubprof/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devanfer02%2Fratemyubprof/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28432680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-14T19:41:57.112Z","updated_at":"2026-01-14T19:41:57.606Z","avatar_url":"https://github.com/devanfer02.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# RateMyUBProf\n\n![img](https://raw.githubusercontent.com/devanfer02/ratemyubprof-client/refs/heads/master/public/assets/view.png)\n\nRateMyUBProf is a web application designed to help students rate and review professors at their university precisely Brawijaya University so other students could prepare the best for their upcomming class professor.\n\nThis application is using [Go v1.24](https://tip.golang.org/doc/go1.24), [PostgreSQL 16](https://www.postgresql.org/) and [RabbitMQ](https://www.rabbitmq.com/docs/download), make sure you already installed the required dependency for this application.\n\nFor client side repository, you can find it right in [this github repository](https://github.com/devanfer02/ratemyubprof-client)\n\n## Backend Architecture\n\nThis golang backend repository use `Clean Architecture` for these reasons. \n\n1. Clear separation of concerns.   \n    Every layer in this repository has their own responsibility from controller (REST API), service (Business Logic) and repository (Database Interaction) so it's easier to develop and test individually\n\n2. Independent of Framework/Database.  \n    The application will work as expected even with different HTTP Framework, ORM Framework or Database since the business logic are isolated from these external concerns through dependency inversion.\n\n3. Enhanced Testability.   \n    Business logic can be tested in isolation using mock implementations, enabling fast unit tests without spinning up databases or web servers.\n\n## Development Setup\n\nYou can use [devcontainer](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers) to setup project development, just make sure you have installed docker already! Some commands that need root access like `docker` cli and running unit test (use `testcontainer-go`) need root access in devcontainer so make sure you run it with sudo if needed. \n\n1. Clone the repository:\n```zsh\ngit clone https://github.com/devanfer02/ratemyubprof.git\ncd ratemyubprof\n```\n\n2. Setup environment variables file `env.json` from [env.example.json](./env.example.json).\n\n3. Setup database environment variables file `.db.env` from `.db.env.example`.\n\n3. Run the migration with migrate cli or application main entry and makefile\n\n```zsh\nmake migrate-up # use migrate cli\nmake migrate    # use defined method in main \n```\n\n3. Run the application\n\n```zsh\nmake run # Basic go run\nmake air # Live reload with air\n```\n   \n4. Access the application at `http://localhost:{PORT}`.\n\n5. To run unit tests, just run the command\n```zsh\nmake test\n```\n\n## Deployment\n\n### Docker\n1. Edit database credentials in `docker-compose.yml` file\n2. Spin up the containers with `docker compose`\n```zsh\ndocker compose up -d\n```\n\n2. Access the application at `http://localhost`.\n\n### Kubernetes\n1. Edit image name, configmap in [`deploy/kube`](./deploy/kube/) and other configurations\n1. Apply the Kubernetes manifests\n```zsh\nkubectl apply -f deploy/kube\n```\n\n2. Access the application via the Kubernetes service.\n\n## API Documentation\n\nTo view or access API Documentation, you can look up with below link\n\nPostman Documentation : [API Doc](https://documenter.getpostman.com/view/27789368/2sB2x5FrnC)\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License. See the [`LICENSE`](./LICENSE) file for details.\n\n## Tech Stacks\n\n[![My Skills](https://skillicons.dev/icons?i=golang,nginx,docker,kubernetes,postgres,rabbitmq)](https://skillicons.dev) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanfer02%2Fratemyubprof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevanfer02%2Fratemyubprof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanfer02%2Fratemyubprof/lists"}