{"id":24111506,"url":"https://github.com/devgabrielcoelho/calendarapi","last_synced_at":"2026-05-03T23:32:14.930Z","repository":{"id":273389948,"uuid":"918975890","full_name":"DevGabrielCoelho/CalendarApi","owner":"DevGabrielCoelho","description":"CallendarAPI is a RESTful API for calendar management, managing events and reminders with secure authentication. Features: authentication via JWT, email notifications, Serilog, Docker. How to install: Use Docker and set up your .env file. Endpoints get users, events, and reminders.","archived":false,"fork":false,"pushed_at":"2025-02-10T16:25:51.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"DevGabrielCoelho","last_synced_at":"2025-08-29T08:42:31.433Z","etag":null,"topics":["api","asp-net-core","callendar","csharp","docker","jwt","postgresql","serilog"],"latest_commit_sha":null,"homepage":"","language":"C#","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/DevGabrielCoelho.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":"2025-01-19T11:43:36.000Z","updated_at":"2025-02-10T16:25:55.000Z","dependencies_parsed_at":"2025-01-20T17:21:40.424Z","dependency_job_id":"f258d22c-fc53-4d26-b355-d75617553f3f","html_url":"https://github.com/DevGabrielCoelho/CalendarApi","commit_stats":null,"previous_names":["devgabrielcoelho/calendarapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DevGabrielCoelho/CalendarApi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FCalendarApi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FCalendarApi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FCalendarApi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FCalendarApi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevGabrielCoelho","download_url":"https://codeload.github.com/DevGabrielCoelho/CalendarApi/tar.gz/refs/heads/DevGabrielCoelho","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FCalendarApi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32589097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: 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":["api","asp-net-core","callendar","csharp","docker","jwt","postgresql","serilog"],"created_at":"2025-01-11T02:35:31.067Z","updated_at":"2026-05-03T23:32:14.904Z","avatar_url":"https://github.com/DevGabrielCoelho.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CallendarAPI\n\nA calendar management API that allows users to create, update, and manage events and reminders with secure authentication.\n\n## 🛠️ Features\n\n- User authentication and authorization with JWT.\n- Creation and management of events and reminders.\n- Email notifications for scheduled events.\n- API logging using Serilog.\n- Docker support for easy deployment.\n\n## 📋 Prerequisites\n\nEnsure you have the following tools installed on your machine before starting:\n\n- **[Docker](https://www.docker.com/products/docker-desktop/)** (recommended latest version)\n\n## 🚀 Installation and Setup\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/DevGabrielCoelho/CalendarApi.git\n   cd CallendarApi\n   ```\n\n2. **Configure the environment file:**  \n    Create the `.env` file in the root of the project and add the following configurations (adjust as needed):\n\n   ```.env\n    Logging_DOCKER_LogLevel__Default=Information\n    Logging_DOCKER_LogLevel__MicrosoftAspNetCore=Warning\n    Serilog_DOCKER_MinimumLevel=Information\n    Serilog_DOCKER_WriteTo__1__Args__rollingInterval=Day\n\n    AllowedHostsDOCKER=\"*\"\n\n    ConnectionStrings_DOCKER_Npgsql='Host=localhost;Port=5432;Database=CalendarApi;Username=postgres;Password=mysecretpassword'\n\n    JWT_DOCKER_Issuer='http://localhost:5236'\n    JWT_DOCKER_Audience='http://localhost:5236'\n    JWT_DOCKER_SigninKey='YourStrongSigninKey' #Sha512\n\n    Email_DOCKER_SmtpServer='smtp.gmail.com'\n    Email_DOCKER_SmtpPort=587\n    Email_DOCKER_SmtpUser='your-email@gmail.com'\n    Email_DOCKER_SmtpPass='your-email-password or app password' \n\n    PasswordHasherSettings_DOCKER_SaltSize=16\n    PasswordHasherSettings_DOCKER_KeySize=32\n    PasswordHasherSettings_DOCKER_MemorySize=15360\n    PasswordHasherSettings_DOCKER_Iterations=2\n    PasswordHasherSettings_DOCKER_DegreeOfParallelism=1\n    PasswordHasherSettings_DOCKER_Delimiter=\";\"\n\n    POSTGRES_DOCKER_PASSWORD=mysecretpassword\n    POSTGRES_DOCKER_USER=postgres\n    POSTGRES_DOCKER_DB=CalendarApi\n    DOCKER_NPGSQL_PORT=5432:5432\n\n    DOCKER_ASP_NET_CORE_PORT=5236:5236\n    URLS=http://+:5236\n   ```\n\n3. **Start Docker build:**\n\n   ```bash\n   docker-compose up -d --build\n   ```\n\n4. Access the API at:\n   ```\n   http://localhost:5236 (or the port configured in .env)\n   ```\n\n## 🧪 API Endpoints\n\nHere are the available routes and their main functionalities:\n\n### 🛡️ Authentication\n- **`POST /api/auth/register`**: Creates a new user.\n- **`POST /api/auth/send-code`**: Send code to user email.\n- **`POST /api/auth/validate-code`**: Validate user email.\n- **`POST /api/auth/login`**: Performs user authentication.\n### 📅 Events Management\n- **`POST /api/events`**: Creates a new event.\n- **`GET /api/events`**: Retrieves all events.\n- **`GET /api/events/{id}`**: Retrieves events by id.\n- **`PUT /api/events/{id}`**: Updates an existing event.\n- **`DELETE /api/events/{id}`**: Deletes an event.\n### ⏰ Reminders Management\n- **`GET /api/reminders`**: Retrieves all reminders.\n- **`POST /api/reminders`**: Creates a new reminder.\n- **`PUT /api/reminders/{id}`**: Updates an existing reminder.\n- **`DELETE /api/reminders/{id}`**: Deletes a reminder.\n\n## 🛠️ Technologies Used\n\n- **C#**: Programming language.\n- **ASP.NET Core**: Framework for building RESTful APIs.\n- **PostgreSQL**: Relational database.\n- **JWT**: For secure authentication.\n- **Serilog**: For logging.\n- **Docker**: For containerization and deployment.\n\n## 📂 Project Structure\n\n```\nsrc/\n├── Controllers/        # Controllers for API routes\n├── Data/               # Database context\n├── Docker/             # Docker setup files\n├── Dtos/               # Data transfer objects\n├── Interfaces/         # Contracts for abstractions\n├── Mappers/            # DTO to Model conversions and vice versa\n├── Migrations/         # Database migrations\n├── Models/             # Data models\n├── Properties/         # Project configurations\n├── Repository/         # Data access logic\n└── Services/           # Business logic implementations\n```\n\n## 📞 Contact\n\nFor questions, suggestions, or collaborations, feel free to reach out:\n\n- **Gabriel Coelho**\n- GitHub: [DevGabrielCoelho](https://github.com/DevGabrielCoelho)\n- Email: [gabriel.coelhosousasantos.pv@gmail.com](mailto:gabriel.coelhosousasantos.pv@gmail.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgabrielcoelho%2Fcalendarapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevgabrielcoelho%2Fcalendarapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgabrielcoelho%2Fcalendarapi/lists"}