Fatura Takip Sistemi
Invoice Tracking System is an enterprise web platform used to manage Financial Operations Center processes within Yıldız Holding. The system is actively used by hundreds of companies and thousands of users, supporting invoice tracking, document processing, integrations, and operational finance workflows.
- Context
- Yıldız Holding
- Category
- Web
- Period
- Apr 1, 2024 - Mar 1, 2025
Technologies
C# ASP.NET Core Web API 3.1 Entity Framework Core 3.1 SQL Server NLog RabbitMQ Redis RestSharp ZXing Spire PDF Quartz Dapper iTextSharp 5.5 GhostScript TypeScript Angular 8 Azure MSAL Chart.js CryptoJS ExcelJS IV-Viewer PrimeNG FullCalendar HTML CSS JavaScript jQuery Jenkins Docker Docker Compose Git GitLab CentOS OpenShift
Project Type
- The project is a full stack web application.
- The frontend was developed with Angular, and the backend was developed with ASP.NET Core.
Architecture / System Design
- The project follows a microservice architecture.
- The main layers are App, API, Scheduler, and database.
- The App, API, and Scheduler layers run as dockerized services on CentOS servers.
- The App layer is the web application accessed by end users.
- The App layer was created with the ASP.NET Core Angular template, so it includes both the client application and the API required by that client.
- The API layer serves the OnePlus mobile application.
- The Scheduler layer contains scheduled jobs developed with Quartz.
- All services run independently from one another.
- The SQL Server database runs on a separate server.
- Nginx is used as a load balancer because the services are heavily used.
- Redis is used as a separate service for user sessions.
Technologies Used
- Backend: C#, ASP.NET Core Web API 3.1, Entity Framework Core 3.1, Dapper, NLog, RestSharp
- Frontend: Angular 8, TypeScript, PrimeNG, Chart.js, FullCalendar, HTML, CSS, JavaScript, jQuery
- Database and messaging: SQL Server, RabbitMQ, Redis
- Document and file processing: ZXing, Spire PDF, iTextSharp 5.5, GhostScript, ExcelJS, IV-Viewer
- Security and authentication: Azure MSAL, CryptoJS, AES, permission based authorization
- Scheduling and integrations: Quartz, SOAP, REST, Ocean Middleware
- DevOps and deployment: Jenkins, Docker, Docker Compose, Git, GitLab, CentOS, OpenShift
Key Technical Details and Modules
- Designed component based frontend screens.
- Built user-friendly interfaces with PrimeNG.
- Supported multi-language usage.
- Integrated with SOAP and REST services through Ocean Middleware.
- Added XML data upload capabilities.
- Implemented Excel import and export flows.
- Encrypted selected request and response payloads with the AES algorithm.
- Used stored procedures and indexes to improve performance.
- Processed and displayed PDF documents.
- Built scheduled tasks for external service integrations.
- Integrated authentication with Azure AD.
- Implemented permission based authorization.
- Supported containerized execution with Docker and Docker Compose.
- Managed deployment flows through Jenkins Pipeline.
- Supported Kubernetes deployment through OpenShift.
Participation and Timeline
- The project was developed by ID3 for FOMER, the Financial Operations Center within Yıldız Holding.
- I worked on the project for approximately one year, between April 2024 and March 2025.
Project Management / Team Structure
- Two ID3 teams were responsible for Yıldız Holding projects: the Ocean Middleware integration team and the Sharks application development team.
- I worked in the Sharks team as a Software Development Specialist.
- I joined an existing long-running project rather than starting from scratch.
- The team included a Business Analyst / Project Manager, Team Lead, Senior Software Specialist, Junior Software Engineer, and three Intern Engineers.
- I personally interviewed and helped onboard one of the intern engineers.
- The team followed an Agile methodology.
- Customer requests were converted into tasks on Jira, and daily planning was 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 approval.
- I managed the deployment process.
- There was also a four-person Product Owner team on the customer side.
Personal Contributions and Responsibilities
- Built user interfaces with PrimeNG.
- Developed API endpoints for the OnePlus mobile application.
- Developed and refactored endpoints required by the App layer.
- Implemented XML data upload flows.
- Processed, displayed, and converted PDF documents with ZXing, Spire PDF, iTextSharp, and GhostScript.
- Implemented Excel import and export features.
- Developed scheduled tasks for external SOAP and REST integration services.
- Dockerized the project and deployed it across different environments.
- Interviewed intern engineers and supported their training.
- Resolved branch conflicts during version control.
- Developed middleware for encrypting required request and response content.
- Implemented and integrated permission based authorization.
Deployment Information
- The project is an internal system used by companies within Yıldız Holding, so it is not publicly accessible.
- Users can access the platform only through the company's VPN connection.
- Deployments were performed on the company's on-premise CentOS servers.