Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laban254/task-manager-api
RESTful API for task management built with the Gin framework.
https://github.com/laban254/task-manager-api
gin github-actions gorm postgresql
Last synced: 5 days ago
JSON representation
RESTful API for task management built with the Gin framework.
- Host: GitHub
- URL: https://github.com/laban254/task-manager-api
- Owner: Laban254
- Created: 2024-10-16T07:34:28.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-21T10:31:35.000Z (3 months ago)
- Last Synced: 2024-11-16T09:25:56.954Z (2 months ago)
- Topics: gin, github-actions, gorm, postgresql
- Language: Go
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Task Management API 🚀
## Overview 🌟
The Task Management API is a RESTful API built using the Gin framework in Go. It provides a robust backend for managing tasks and projects, featuring user authentication, role-based access control, and integration with Google OAuth for enhanced security and user experience.
## Getting Started 🛠️
Refer to the [Project Setup](./docs/project_setup.md) section in the original documentation for instructions on setting up the environment and dependencies.
## Features ⚙️
- **User Authentication**:
- Supports JWT-based authentication for secure user sessions.
- Implements OAuth 2.0 for Google authentication.
- **Role-Based Access Control (RBAC)**:
- Differentiate user roles (admin and regular users) with specific permissions for managing projects and tasks. 👥
- **CRUD Operations**:
- Full support for creating, reading, updating, and deleting tasks and projects.
- API endpoints include:
### Authentication 🔑
- `/auth/register` - New user registration.
- `/auth/login` - User login and JWT issuance.
- `/auth/google/login` - Google OAuth login.
- `/auth/google/callback` - Google callback.
### Protected Routes 🛡️
- `/api/projects` - Manage projects (create, read, update, delete).
- `/api/tasks` - Manage tasks (create, read, update, delete).
### Admin Routes 👨💼
- `/admin/users/register` - Admin user registration.
- **Input Validation and Error Handling**:
- Ensures incoming data is validated and errors are handled gracefully.
- **Middleware Support**:
- Integrated middleware for logging, CORS handling, and request parsing.
- Custom middleware for JWT validation and rate-limiting.
- **Secure Communication**:
- All endpoints are protected and require authentication.## Directory Structure 📁
- **cmd**: Contains the main entry point of the application, where the server is started.
- **config**: Holds configuration files, including environment variable setups.
- **docs**: Includes projects documentation
- **internal**: Contains application-specific logic, such as route handlers.
- **pkg**: Houses reusable components like middleware, models, and database management.
- **scripts**: Contains deployment-related scripts,## Technologies Used 💻
- **Go**: Programming language for building the API.
- **Gin**: Web framework for building the RESTful API.
- **GORM**: ORM for interacting with the database.
- **PostgreSQL**: Database for storing user and project data.
- **JWT**: For user authentication and session management.
- **OAuth 2.0**: For Google authentication.