CV/Writerside/topics/Private-projects.md

98 lines
6.3 KiB
Markdown

# Private projects
<chapter title="Sample Android Application">
<primary-label ref="wip" />
<tldr>
<p>Gitea repo: <a href="https://gitea.adriankuta.dev/RediOne1/Android-Sample">Android Sample</a></p>
<p>Source code: <resource src="Android-Sample-main.zip"/></p>
</tldr>
</chapter>
If you are interested in the style in which I create applications, both in terms of architecture and code cleanliness, I
invite you to check out my sample Android application. This application showcases the use of modern technologies and
design patterns, such as Jetpack Compose, multi-module architecture, and the MVVM pattern. I also apply best programming
practices, including SOLID principles, DRY, and many others.
The source code of the application is available for download here <resource src="Android-Sample-main.zip"/> or can be
found in my private repository [Android Sample](https://gitea.adriankuta.dev/RediOne1/Android-Sample) . This allows
you to directly see my approach to programming and view code examples that illustrate best practices in developing
modern mobile applications.
If you have any questions or need more information, do not hesitate to contact me. I am happy to share my knowledge and
experience to assist you in your projects.
## AI - Artificial Intelligence
In the context of AI, I have not managed to complete a complete project so far. I am currently in an intense learning
phase, and my private initiatives are more like experimental research facilities. However, I have found that the best
way to learn new technologies is to set yourself a specific goal. Therefore, I took up the challenge of creating my own
AI model, focusing on training convolutional neural networks (CNN) for photo classification based on person recognition.
I believe that a single AI model may not be sufficient, so at the face detection stage I use the opencv library and the
haar cascade mechanism. Later, I plan to use tensorflow and keras to train the CNN more thoroughly.
In terms of user interface, I am also exploring Compose Multiplatform, a modern tool that allows you to create UI that
works on multiple platforms, which is part of my process of learning interface design.
## Android & Kotlin multiplatform libraries in Maven Repo.
As part of learning how to create my own libraries and tools for developers, I developed a few small libraries that I
made available in Maven, a repository popular among programmers. Obviously, these libraries won't change the world, but
their main goal was to expand my knowledge about the possibilities of creating open-source tools that support the
programming process.
### Unbound Drag & Drop
[Unbound Drag & Drop](https://github.com/AdrianKuta/Unbound-Drag-Drop)
[![Maven Central Version](https://img.shields.io/maven-central/v/dev.adriankuta/unbound-drag-drop?style=plastic)](https://central.sonatype.com/artifact/dev.adriankuta/unbound-drag-drop)
[![License: MIT](https://img.shields.io/github/license/AdrianKuta/Unbound-Drag-Drop?style=plastic)](https://github.com/AdrianKuta/Unbound-Drag-Drop/blob/master/LICENSE)
[Unbound Drag & Drop.webm](https://github.com/AdrianKuta/Unbound-Drag-Drop/assets/46381935/73cc7ac8-aaf0-4dd7-b506-0745b1122222)
Unbound Drag & Drop is a versatile and user-friendly feature designed to enhance your Android
applications by enabling drag and drop functionality across multiple RecyclerViews. Unlike the
default behavior, which restricts drag and drop actions within a single RecyclerView, Unbound Drag &
Drop allows users to seamlessly move items between different RecyclerViews, providing a more
flexible and intuitive user experience.
#### Features
- **Multi-RecyclerView Drag and Drop**: Easily drag and drop items between multiple RecyclerViews.
- **Customizable and Extensible**: Adapt the feature to fit your specific needs with customizable
options and extensible components.
- **Smooth and Intuitive User Experience**: Enhance the interactivity of your app with a
user-friendly drag and drop interface.
- **Easy Integration**: Quickly integrate Unbound Drag & Drop into your existing Android projects
with minimal setup.
### Multilevel Expandable RecyclerView
[![maven](https://img.shields.io/maven-central/v/com.github.adriankuta/expandable-recyclerView?style=plastic)](https://mvnrepository.com/artifact/com.github.adriankuta/expandable-recyclerView)
[![License](https://img.shields.io/github/license/AdrianKuta/Expandable-RecyclerView?style=plastic)](https://github.com/AdrianKuta/Expandable-RecyclerView/blob/master/LICENSE)
[![Publish](https://github.com/AdrianKuta/Expandable-RecyclerView/actions/workflows/publish.yml/badge.svg)](https://github.com/AdrianKuta/Expandable-RecyclerView/actions/workflows/publish.yml)
With this adapter you can add expand feature to regular RecyclerView.
All objects are store in [Tree (Data structure)](https://github.com/AdrianKuta/Tree-Data-Structure), so adapter can
create multilevel expandable groups.
Under the hood, the tree is flattened to simple list, so from RecyclerView's point of view it can operate as usual.
![Demo.gif](Demo.gif) {width="400"}
## NAS Server
Having my own NAS server is not just a hobby, but an opportunity to delve into the fascinating world of technology. In
my spare moments, I dedicate time to exploring its capabilities, which translates into countless hours of fun and
learning. My journey with the NAS started quite innocently but quickly evolved into something much bigger. Currently, my
server acts as a hosting platform, running several websites, including the one you are reading this post on.
I also use it as a testing environment, invaluable while learning React or Nest for the backend. What once seemed like a
mere hobby has now allowed me to gain extensive knowledge in managing multiple Docker containers, facilitating their
communication, and creating my solutions. This process also made me realize how crucial it is to ensure network
security - both private and public.
Over time, my interest in network security has grown to proportions that sometimes seem excessive to me. The network
architecture in my home, with routers, switches, and VPNs, could be compared to the network infrastructure of some
companies I've had the chance to work for. I sometimes laugh that my home network is more complex than some professional
installations. However, this reflects the depth of my engagement in a hobby that has become a true passion and a source
of valuable skills.