GitHub
Tests: 12 • Commercial: 2 • Pet projects: 4 • Legacy: 4
Total: 22

.NET Framework

Test
2021

Project Request

ASP.NET MVC • C# • SQL Server
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2020

ProjectC

ASP.NET MVC • C# • JSON • jQuery
JSON data processing.
Test
2020

Vehicle Maintenance

ASP.NET MVC • VB.NET • JSON
Idea of the project: if someone wants to order a project development, here you can send an application.
Test
2019

Movie Navigator

ASP.NET MVC • VB.NET
Request information about movie from IMDB.
Test
2018

Customers Exchange

ASP.NET MVC • C# • SQL Server
Automated teller machine emulation.
Test
2016

ATM

ASP.NET MVC • C#
Automated teller machine emulation.

.NET Core

Pet project
2022

Mail Daemon

.NET 8 • Console • JSON
Utility to send mails with customizable settings.

Custom

Code
2024

Buns of code

.NET Framework • C# • JavaScript
Code snippets from my projects, ready to use; tiny tests; code examples.

PHP

Test
2024

Mediabox

PHP 8 • Laravel 11 • Vue.js • Composer • SQLite
Test project for media files management.
Test
2020

Loan Castle

PHP • MariaDB
Jums jāizstrādā kāda lielāk projekta prototips. Izstrādājot prototipu, paturiet prātā, ka projektam attīstoties, šo prototipu varētu vajadzēt pilnveidot.
Test
2020

Content Management

PHP • MySQL • AJAX
Создать простой сайт, где будет страница с формой для авторизации и страница для авторизованного пользователя.
Test
2019

Laravel

PHP • Laravel • Vue.js • Composer • SQLite
Izveidot aplikāciju, kura ik pēc noteikta intervāla (60 sekundes) veic ierakstu datubāzē izmantojot Laravel freimworka iebūvēto funkcionalitāti.
Test
2019

Phone Check

PHP • JavaScript • JSON • Docker
Implement application to detect country by phone number.

Frontend

Test
2021

Forex Wall

npm • React
For this exercise, what we need is a simple live wall for tracking currencies.

Business projects

Commercial
2008

Certification Center

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Dapper • JavaScript • jQuery • Git
Transport registration and certification services in Latvia, Customer Relationship Management.
Commercial
2000

Amerikas Auto

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • SQL Server • ADO.NET • Entity Framework • JavaScript • jQuery • Git
Car service and spare parts for all USA and European car models, Customer Relationship Management.

Pet projects

Pet project
2023

Geolocation Assistant

.NET 8 • ASP.NET Core • C# • Web API • JSON • Git
Website for determining geolocation by IP or geotagged photo.
Pet project
2008

Web Dynamics

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
Software development blog. Articles, books, videos, content management.
Pet project
2000

Blackball

.NET Framework 4.8 • ASP.NET Web Forms • C# • LINQ • Web API • JSON • XML • SQL Server • Dapper • JavaScript • jQuery • SVG • Git
My entertainment portal created from scratch.

Good old times

Legacy
2000

DOS Clock

Turbo Pascal • Assembler
Digital clock.
Legacy
2000

BrainOut

Turbo Pascal • Assembler
Tank battle game.
Legacy
1999

Airport Administrator

Turbo Pascal
Курсовая работа в институте.
Legacy
1998

Atomizer

Turbo Pascal • Assembler
Atomizer, aka «Studio2D». Graphic raster editor. AGI is my own «Atomizer Generated Image» file format.

Customers Exchange

2018 Test

Automated teller machine emulation.

ASP.NET MVC C# SQL Server
Information
Source code
Root / Impexpdata / Program.cs
using System; using System.IO; using Impexpdata.Core; using log4net; namespace Impexpdata {     class Program     {         private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);         private static readonly DataExchangeService DataExchangeService = new DataExchangeService();         static void Main(string[] args)         {             log4net.Config.XmlConfigurator.Configure();             if (args.Length == 0)             {                 Log.Error("Application arguments not found.");                 MarkMessageAsError();                 Console.WriteLine("Application arguments not found.");                 Console.ResetColor();                 Console.WriteLine("Arguments: impexpdata -import <file name>.");                 Console.WriteLine("Arguments: impexpdata -export <file name>.");                 Console.WriteLine(@"<file name> can be absolute or relative. Like C:\impexpdata\export.cvs or just export.cvs.");                 Console.WriteLine("Example: impexpdata -import import.csv");                 Console.WriteLine("Press any key to exit...");                 Console.ReadKey();                 return;             }             if (args.Length < 2)             {                 Log.Error("Application arguments count is invalid.");                 MarkMessageAsError();                 Console.WriteLine("Arguments count is invalid.");                 Console.ResetColor();                 Console.WriteLine("Press any key to exit...");                 Console.ReadKey();                 return;             }             var filePath = Path.IsPathRooted(args[1]) ? args[1] : Path.Combine(Properties.AppPath, args[1]);             if (!Path.GetExtension(filePath).EndsWith("csv"))             {                 Log.Error("Application works only with CSV files.");                 MarkMessageAsError();                 Console.WriteLine("Application works only with CSV files.");                 Console.ResetColor();                 Console.WriteLine("Press any key to exit...");                 Console.ReadKey();                 return;             }             var itemsProcessedCount = 0;             var processResultMsg = string.Empty;             switch (args[0])             {                 case "-import":                     Log.Info("Start import data...");                     itemsProcessedCount = ImportData(filePath);                     if (itemsProcessedCount == -1)                     {                         processResultMsg = "Import data file not found.";                     }                     else                     {                         processResultMsg = string.Format("Import process completed. {0} item(s) was processed.", itemsProcessedCount);                         Log.Info("Import process completed.");                     }                     break;                 case "-export":                     Log.Info("Start export data...");                     itemsProcessedCount = ExportData(filePath);                     processResultMsg = string.Format("Export process completed. {0} item(s) was processed.", itemsProcessedCount);                     Log.Info("Export process completed.");                     break;                 default:                     processResultMsg = "Wrong process type argument value.";                     Log.Error(processResultMsg);                     break;             }             Console.WriteLine(processResultMsg);             Console.WriteLine("Press any key to exit...");             Console.ReadKey();         }         private static int ImportData(string filePath)         {             return DataExchangeService.ImportData(filePath);         }         private static int ExportData(string filePath)         {             return DataExchangeService.ExportData(filePath);         }         private static void MarkMessageAsError()         {             Console.ForegroundColor = ConsoleColor.Red;         }     } }