{"id":14973941,"url":"https://github.com/ash-exp/attendance-management-system","last_synced_at":"2026-02-08T22:03:12.521Z","repository":{"id":108646218,"uuid":"587219734","full_name":"Ash-exp/Attendance-Management-System","owner":"Ash-exp","description":"A School Attendance Management System where there are three entities Principal, Teacher and Students where all of them will have different functionalities.","archived":false,"fork":false,"pushed_at":"2023-02-01T13:25:45.000Z","size":23,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T22:09:46.622Z","etag":null,"topics":["attendance-management-system","golang","gorilla-mux","gorm","pgsql","restful-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ash-exp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-01-10T08:37:48.000Z","updated_at":"2024-01-14T04:14:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b1ef64b-8e0f-436d-a2d9-b388b5520f62","html_url":"https://github.com/Ash-exp/Attendance-Management-System","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"f34efde6f4cab1b7cf6d0a3ac4cb3d738ec9c816"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ash-exp%2FAttendance-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ash-exp%2FAttendance-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ash-exp%2FAttendance-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ash-exp%2FAttendance-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ash-exp","download_url":"https://codeload.github.com/Ash-exp/Attendance-Management-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240815820,"owners_count":19862150,"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":["attendance-management-system","golang","gorilla-mux","gorm","pgsql","restful-api"],"created_at":"2024-09-24T13:49:42.893Z","updated_at":"2026-02-08T22:03:12.496Z","avatar_url":"https://github.com/Ash-exp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Attendance Management System\n\n## **Table of Contents**\n\n- [About the project](#about-the-project)\n  - [API docs](#api-docs)\n- [Prerequisites](#prerequisites)\n  - [Linux](#linux)\n  - [macOS](#macos)\n  - [Windows](#windows)\n- [Getting started](#getting-started)\n  - [Layout](#layout)\n- [Run the project](#run-the-project)\n- [Access the project logs](#access-the-project-logs)\n- [Configure Database through PgAdmin](#configure-database-through-pgadmin)\n- [Entry Point](#entry-point)\n- [Possible Issues](#possible-issues)\n- [Shutting down the application](#shutting-down-the-application)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## About the project\n\n_A School Attendance Management System where there are three entities Principal, Teacher and Students where all of them will have different functionalities._\n\n### API docs\n\nAll the API endpoints can be found in the [Postman Import Link](https://api.postman.com/collections/13277644-0383300d-4299-486a-bd08-e85538c6e5f4?access_key=PMAT-01GPRTR76H3X2FYD1W9JV4HT8P)\n\n## Prerequisites\n\nThis project uses `Docker` for containerization and requires Docker to be installed in your system. Refer the following if you don't have Docker yet.\n\n### Linux\n\nRun this quick and easy install script provided by Docker:\n\n```sh\ncurl -sSL https://get.docker.com/ | sh\n```\n\nIf you're not willing to run a random shell script, please see the [installation](https://docs.docker.com/engine/installation/linux/) instructions for your distribution.\n\n### macOS\n\nDownload and install [Docker Community Edition](https://www.docker.com/community-edition). if you have Homebrew-Cask, just type `brew install --cask docker`. Or Download and install [Docker Toolbox](https://docs.docker.com/toolbox/overview/). [Docker For Mac](https://docs.docker.com/docker-for-mac/) is nice, but it's not quite as finished as the VirtualBox install. [See the comparison](https://docs.docker.com/docker-for-mac/docker-toolbox/).\n\n\u003e **NOTE** Docker Toolbox is legacy. You should to use Docker Community Edition, See [Docker Toolbox](https://docs.docker.com/toolbox/overview/).\n\n### Windows\n\nInstructions to install Docker Desktop for Windows can be found [here](https://docs.docker.com/desktop/windows/install/)\n\nOnce installed, open powershell as administrator and run:\n\n```powershell\n# Display the version of docker installed:\ndocker version\n```\n\n## Getting started\n\nBelow we describe the conventions or tools specific to golang project.\n\n### Layout\n\n```tree\n├── .github\n├── api\n│   ├── controllers\n│   │   └── attendance.controller.go\n│   │   └── attendance.teacher.controller.go\n│   │   └── db.go\n│   │   └── home.controller.go\n│   │   └── routes.go\n│   │   └── teacher.controller.go\n│   │   └── user.controller.go\n│   ├── middlewares\n│   │   └── middlewares.go\n│   ├── models\n│   │   └── attendance.go\n│   │   └── attendance.teacher.go\n│   │   └── teacher.go\n│   │   └── user.go\n│   ├── responses\n│   │   └── json.go\n│   ├── seeds\n│   │   └── seeder.go\n│   └── utils\n│       └── formaterror\n│           └── formaterror.go\n├── .env\n├── .gitignore\n├── docker-compose.yml\n├── Dockerfile\n├── example.env\n├── go.sum\n├── go.mod\n├── main.go\n└-─ README.md\n```\n\nA brief description of the layout:\n\n- `api` places most of project business logic and locate\n  - `controllers` package - route handlers and controllers\n  - `middlewares` package - middleware configurations\n  - `models` package - db models and methods\n  - `responses` package - Json handlers\n  - `seed` package - db migrations and model association\n  - `utils` package - error formater\n- `.gitignore` varies per project, but all projects need to ignore `.env` file.\n- `example.env` dummy structure of env variables\n- `docker-compose.yml` docker services and their configurations\n- `Dockerfile` project image instructions\n- `main.go` project entry-point.\n- `README.md` is a detailed description of the project.\n\n## Run the project\n\n```bash\ndocker-compose up -d\n```\n\n## Access the project logs\n\n```bash\ndocker logs full_app\n```\n\n## Configure Database through PgAdmin\n\nGo to your browser and open:\n\n```link\nhttp://localhost:5050\n```\n\n- Login by the credentials used in the environment veriables at `.env` file.\n- Choose and create a server with `HOST`, `PORT`, `USERNAME` and `PASSWORD` **as per the environment values only**.\n\n## Entry Point\n\nNow the application has successfully started. All the project API end-points are running and open at:\n\n```link\nhttp://localhost:8080\n```\n\n## Possible Issues\n\n1. Issue with environmental variable: Maybe you used invalid details in the .env file, this might break your build. Carefully read the logs when you run docker-compose up. If you identify any and fix, terminate the process using `Ctrl+C`.\n\n   - Stop running process using :\n\n     ```bash\n     docker-compose down --remove-orphans --volumes\n     ```\n\n   - Then to build again, use :\n\n     ```bash\n     docker-compose up --build\n     Observe the --build.\n     ```\n\n2. Any other issue: If you have any other issue, try and read the logs and fix them. then follow the exact same process to build again.\n\n## Shutting down the application\n\nAfter successful testing of the application, you can shut it down using:\n\n```bash\ndocker-compose down\n```\n\nOr to also remove the volumes too:\n\n```bash\ndocker-compose down --remove-orphans --volumes\n```\n\nIf you want to remove all dangling images, run:\n\n```bash\ndocker system prune\n```\n\nTo remove all unused images, not just dangling ones, run:\n\n```bash\ndocker system prune -a\n```\n\nTo remove all unused images not just dangling ones and volumes, run:\n\n```bash\ndocker system prune -a --volumes\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fash-exp%2Fattendance-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fash-exp%2Fattendance-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fash-exp%2Fattendance-management-system/lists"}