Notify
Notify is a backend-focused web application developed to centrally manage email sending processes for Yıldız Holding and its contracted companies. Companies that need to join the email flow can consume internal or external service endpoints through Ocean Middleware.
- Context
- Yıldız Holding
- Category
- Web
- Period
- Apr 1, 2024 - Mar 1, 2025
Technologies
C# .NET Framework 4.8 MongoDB NLog CsvHelper Keycloak CentOS IIS Git GitLab
Project Type
- The project is a backend web application.
- It was developed with .NET Framework 4.8.
Architecture / System Design
- The project contains three main layers: internal backend, external backend, and database.
- The internal backend and external backend have similar structures.
- Both backend applications primarily access the database layer.
- MongoDB is used for the database layer.
- The internal application is published on IIS servers.
- The external application is published on CentOS based Linux servers.
Technologies Used
- Backend: C#, .NET Framework 4.8
- Database: MongoDB
- Logging and file processing: NLog, CsvHelper
- Authentication: Keycloak
- Deployment and infrastructure: CentOS, IIS
- Version control: Git, GitLab
Key Technical Details and Modules
- Logged email sending operations with NLog and CsvHelper.
- Provided authentication support through Keycloak.
- Stored email sending content on MongoDB.
- Handled email sending operations through a runtime-created queue.
Participation and Timeline
- The project is used by companies within Yıldız Holding for email sending operations and was supported by ID3.
- I worked on the project for approximately one year, between April 2024 and March 2025.
Project Management / Team Structure
- The project was supported by the Sharks application development team within ID3, which was responsible for Yıldız Holding projects.
- I worked in the Sharks team as a Software Development Specialist.
- I joined an existing long-running project rather than starting from scratch.
- Two developers from the Sharks team, including me, supported this project.
- The team followed an Agile methodology.
- Customer requests were converted into tasks on Jira.
- Daily planning and work distribution were handled through Microsoft Teams daily meetings.
- Deployment work was planned through two-week or monthly sprints.
- After sprint completion, tasks were merged into the main branch through Git.
- I helped the team resolve branch conflicts during version control.
- Deployments were first completed in UAT, then moved to production after successful results and approval.
- I managed the deployment process.
- There was also a four-person Product Owner team on the customer side.
Personal Contributions and Responsibilities
- Implemented authentication flows using authentication information provided by Keycloak.
- Logged successful and failed email sending operations with CsvHelper.
- Deployed the applications on both Windows / IIS and Linux / CentOS servers.
Deployment Information
- The project is an internal and external system used by companies within Yıldız Holding, so it is not publicly accessible.
- Companies can access the platform only with the authentication information provided by the company.
- Deployments were performed on the company's on-premise CentOS servers and Windows-based IIS servers.