Programming
I became interested in programming in high school, where I had experience with C++ and HTML because my class had an extended math and computer science program. I returned to this interest during my PhD studies. I started learning Python, then moved on to other technologies.
I focus on frontend development (HTML/CSS, JavaScript, TypeScript, React, Next.js). I also have experience in backend (Prisma ORM, building API in Next.js), SQL and graphic design (Figma).
Below you can see details about some of my projects:
This Website
My portfolio full-stack website with blog and admin panel/CMS. Designed from scratch in Figma and developed in Next.js 14 + TypeScript using the latest tech stack.
- Building a RESTful API in Next.js
- Integration with a database (Supabase - PostgreSQL) using ORM (Prisma)
- Authentication access to admin panel (and some API routes) using NextAuth.js
- Sending emails with Nodemailer
- React Hook Form + Zod
- Toast notifications (React Hot Toast)
- Markdown editor (SimpleMDE)
- Styling: CSS modules
E-commerce Project (1/2)
Dashboard and backend made from scratch that allow you to manage multiple online shops. You can add products and their properties as well as payments statuses and statistics.
- Full stack application built in Next.js and TypeScript
- Authentication using Clerc
- Client-side state management (modals) using Zustand
- Database connection using Prisma ORM (db: MySql, hosted on Aiven)
- Forms using React Hook Form and Zod
- Uploading and hosting images with Cloudinary
- Charts with Recharts
- Styling: Shadcn/ui
E-commerce Project (2/2)
Online store connected to dashboard and backend built from scratch. Contains featured products section displayed on the landing page and related products displayed on the card of a specific product. You can filter and preview (modals) products.
- Build with Next.js and TypeScript
- Client-side state management (shopping cart, product preview modals) using Zustand
- Toast notifications with React Hot Toast
- Payments with Stripe (test-mode)
- Styling: Headless UI
Issue Tracking App
A full-stack application for tracking bugs and assigning them to team members. The landing page includes a dashboard that displays recent bugs and statistics. Adding, Editing and deleting issues only available after login
- Full-stack app built in React (Next.js 14) + TypeScript
- Building RESTful API in Next.js for add, edit & delete issues
- Integrating with database using Prisma (Database: Supabase – PostgreSQL)
- User authentication with NextAuth.js (Credentials)
- Getting users (with caching) with React Query & Axios
- Forms with React Hook Form + Zod
- Pagination, filtering and sorting issues
- Dashboard with Recharts
- Adding content in a markdown editor (EasyMDE)
- Styling: Tailwind CSS & Radix UI
Film App
The app allows you to search the API with movies (OMDb API). In addition, you can view movie details and rate individual movies when you click on a movie. Rated movies are available under "My Movies" and stored in local browser storage.
- Built with React + TypeScript
- Routing with createBrowserRouter()
- Fetching data using fetch()
- Implementing star rating component and dark-light mode switch
- Adding and removing movies from watched list
- Storing rated movies in Local Storage. Editing rating.
- Styling: daisyUI & TailwindCSS
To-Do List App
To-do app in which I practice Vanilla JavaScript. Allows you to add, check and delete todos stored in the local browser storage. The newest todos appear at the top of the list and are moved to the bottom of the list when checked.
- Built in Vanilla JavaScript and HTML/CSS
- Storing todos in the browser local storage
- Editing, toggle checking and removing todos
- Icons: Phosphor Icons
Company Landing Page
Landing page of an concept company written in HTML/CSS from a ready-made graphic design as part of a tutorial.
- Built in HTML/CSS
- Using BEM naming convention
- Bottom-up approach (components first, then sections)
- Responsive design
- Mobile-first approach
- Animations
- Image optimalization (WebP image format)