Projects Portfolio
Project Statistics and Analytics
StatisticsStats
Aleksandr Nikiforov CV
Built using the latest Next.js 16, this site is designed to showcase my recent work and skills. Key features include: Interactivity: Feel free to like or leave a comment on any project. To do this, simply sign in with Google, GitHub, or register via email. Data Visualization: I used Recharts to display the technology stack and show dynamic graphs of likes and comments. Full Access: Every project has direct links to the source code and the live demo. CV: You can easily find and download my full resume as a PDF on the dedicated page. Iād love to hear your feedback! Check it out below.
Angular Zoneless Template
š Angular 21 Zoneless Starter Modern starter template for Angular 21 Zoneless applications with SSR and NgRx state management. Fully typed, secure, and production-ready. š Tech Stack: Frontend: Angular 21 (Zoneless, Signals), NgRx (State & Effects), Tailwind CSS Backend: Node.js (Vercel Functions), Drizzle ORM, PostgreSQL (Supabase) Authentication: JWT (HttpOnly Cookies), OAuth (Google/GitHub), Argon2id hashing Validation: Zod (API & Environment variables), Angular Signal Forms Quality Assurance: 100% Unit Test Coverage (Vitest), E2E Tests (Playwright) Deployment: Optimized for Vercel (Serverless + Edge)
Cards for Training Memory
š Boost Your Memory and Learning with Cards! šāØ Create Personalized Flashcards: Easily make groups of cards with terms, concepts, or any information you want to remember. Each card shows your chosen content on one side and its translation, definition, or examples on the other. Share Your Flashcards: Easily share your groups of flashcards with others, making collaborative learning a breeze.š Start your journey towards better memory and enhanced learning with Cards today! ⨠I've set up a Telegram group where everyone can share their flashcards! š You can join the group directly from the top menu of the Cards app. š¤ Plus, I've created a Telegram bot to help keep things organized and ensure everyone follows the group rules. š I've also added some example messages with card files attached to help you get started. Can't wait to see you there! š
Spin Me Game
SpinMe Game is a casual puzzle game where the goal is to place all pieces on the board by spinning them around their axis. If a square is already occupied, the game highlights it to help you plan your moves. š¹ How to play Select a piece ā swipe UP or press the UP key, or simply click on a piece. Rotate the piece ā swipe LEFT/RIGHT, use the arrow keys, or tap the on-screen rotate buttons. Place the piece ā swipe DOWN, press the DOWN key, or tap the on-screen button. The game supports both keyboard controls and touch gestures, making it equally fun to play on desktop or mobile.
Wallets PWA
This is a simple yet practical application for tracking your expenses and income. It's built as a Progressive Web App (PWA), which means you can install it on your device and use it just like a native app. š± Installable on desktop or mobile š All data stays on your device (stored in browser local storage) š Works completely offline ā no internet required Perfect for quick personal finance tracking without the complexity of big apps.
Netflix Roulette
This project is a React training course challenge. It demonstrates state management with Redux, routing with React Router, asynchronous actions with Thunk, and testing with Enzyme and React Testing Library. ā ļø Note: The app works fully with the local API. The Vercel deployment uses a remote API that is no longer functional.
Sliding Picture Puzzle Game
Vibe coding is seriously addictive š I've been experimenting again ā this time trying to build the classic "Fifteen" game with AI, giving it only verbal instructions. AI is amazing with simple stuff, but once the requests pile up, it sometimes freezes or starts looping like a stuck record š¶. The trick I found: jump in, fix the code a bit yourself, and then tell the AI "forget everything we talked about before ā now just listen to this new request". Works like magic āØ. I honestly think the future of programming belongs to those who don't just use AI, but know how to tame it. š
Piano PWA
Couldn't resist vibe coding again š My daughter's class asked the kids to bring a musical instrument ā even a toy piano would do. We have a full 88-key synth at home (way too heavy to carry š ), so I built a little PWA toy piano for the phone that works offline. Then I added sampled piano sounds⦠and later asked AI to add a key-width switch. Fixing small things here and there is easy, but the fun part is realizing how much you can do when AI becomes your tireless coding partner š¤š
Logistic Task Optimizer
This application is a logistics task simulator designed to plan and optimize delivery routes for a fleet of vehicles serving multiple stores in a district. Users can upload a sample Excel order file, and the program automatically calculates: Optimal delivery routes and schedules for a 5-day workweek, Estimated transportation costs, including vehicle operation, hired transport, overtime, and penalties, Detailed analysis of delivery efficiency, considering load capacity, travel time, and operational constraints. The system accounts for: Different product types with restrictions on combined transport, Vehicle limitations (own fleet and hired vehicles), Loading, unloading, and break times, Overtime and underutilization penalties. The output includes tables, charts, and delivery plans, helping visualize schedules, costs, and route efficiency. Read the full description of the task on GitHub.
DoMeteo - Autonomous Weather Station
This is an autonomous weather station that can also store data from any sensors. In my setup, I used a weather sensor (BME280). The board starts, sends data, and then goes to sleep for 5 minutes to save power. To optimize battery usage: A field-effect transistor connected to pin D6 cuts off power to the BME280 when the board sleeps. The 18650 lithium battery is monitored via input A0. If the battery voltage exceeds 4.2V, the D7 output disables the solar panel charging circuit to prevent overcharging.
Buy For Me - Shopping Lists
Demo access: User: Saha2 Password: s222 This application allows multiple users to collaboratively manage shopping lists in real time. Each list can be filled out and updated by several users simultaneously. All data is securely stored in a MongoDB database, and the Vercel serverless API handles access and updates. Features include: Create, edit, and share shopping lists with a group of users, Real-time updates across all users in the same group, Persistent storage in MongoDB for reliable access from any device, Demo access available without registration. To try the app, you can register/login and use group IDs: 5f152ec3ea3c4800083d7de6 or 5f13f49eca7ee00007801c84. Alternatively, use the demo credentials: User: Saha2, Password: s222
TakeoffStaff Test Task
Test task for TakeoffStaff. Description in Readme file on GitHub. I've tried Babylon JS here later.
Sibdev2
Demo access: user1 password1 Test task for Sibdev. Part 2. Working with the YouTube API. Description and link to Figma in Readme file on GitHub.
Meteo - Autonomous Outdoor Weather Station
The weather station is powered by a lithium battery, charged by a solar panel. Data is transmitted via Wi-Fi to a back-end hosted on Zeit.co and stored in MongoDB. A universal GET request is available: /data?start=START_DATE&finish=FINISH_DATE&tframe=TFRAME&step=STEP TFRAME can be month, day, hour, or minute. A small frontend is built with Quasar. To view it, click [TO DEPLOY]. The last reading was on March 14, 2022, at 9:58 AM ā at that time, I was forced to leave my home forever. To explore historical data and graphs, select the period from July 1, 2019, to March 14, 2022.
Solar Tracker Robot
Mentored my son to build a robot that tracks the sun, automatically rotating solar panels to collect maximum energy. Participated in the Junior Russian Schoolchildren's Competition at MEPhI, where my son won first place, and I received a Project Supervisor Certificate. Skills demonstrated: PWA development, robotics, automation, and mentoring in STEM projects.