Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
python manage.py shell
from django.apps import apps
apps.get_models()
from app.models import Author, Book
# ── ДОДАВАННЯ ─────────────────────────────────────────────────────────────────
@sunmeat
sunmeat / models.py
Created March 25, 2026 11:51
налаштування констрейнтів
from django.db import models
from django.db.models import Q, F # для складних запитів, наприклад, для перевірки умов у CheckConstraint
# Q використовується для створення складних умов, F використовується для посилання на інші поля в моделі при створенні обмежень або запитів
# https://docs.djangoproject.com/en/6.0/ref/models/querysets/#django.db.models.Q
# https://docs.djangoproject.com/en/6.0/ref/models/expressions/#django.db.models.F
class Author(models.Model):
name = models.CharField(max_length=100, unique=True)
birth_year = models.IntegerField(null=True, blank=True)
rating = models.DecimalField(max_digits=3, decimal_places=1, default=5.0)
@sunmeat
sunmeat / settings.py
Created March 25, 2026 11:27
налаштування .env
import os
from dotenv import load_dotenv
load_dotenv()
.....
DATABASES = {
'default': {
'ENGINE': os.getenv('DB_ENGINE'),
@sunmeat
sunmeat / task.md
Created March 21, 2026 11:45
ДЗ: трирівнева архітектура у курсовому командному проєкті

Спробувати застосувати трирівневу (three-layer) архітектуру для фінального курсового проєкту. Мають бути такі рівні:

  • Presentation Layer — контролери та представлення
  • Business Logic Layer — сервіси
  • Data Access Layer (DAL) — рівень доступу до даних

Необхідно реалізувати Data Access Layer, зокрема:

Створити класи-репозиторії для роботи з сутностями бази даних. Забезпечити взаємодію з репозиторіями через абстракцію IRepository для досягнення слабкої зв’язаності (low coupling).

Poker Planning: Абсолютно реальні задачі програміста

  1. Написати функцію, яка визначає, чи сьогодні понеділок, чи просто життя тебе карає
    EPIC: Реальність check

  2. Пояснити коту за 30 секунд, що таке блокчейн, крипта і чому ти досі не мільйонер
    EPIC: Важливі розмови

  3. Переконати викладача, що ти зробив ДЗ на 12 балів, а не на 11
    Тип: Negotiation / Gaslighting academic

@sunmeat
sunmeat / models.py
Created March 17, 2026 11:49
моделі для практики на міграції в Django
from django.db import models
from django.utils import timezone
from django.core.validators import MinValueValidator, MaxValueValidator
class Category(models.Model):
"""Категорії товарів"""
name = models.CharField(max_length=100, unique=True, verbose_name="Назва категорії")
slug = models.SlugField(max_length=120, unique=True, help_text="URL-friendly назва") # https://netpeak.net/uk/blog/shcho-take-url-slug-i-yak-zrobiti-yogo-seo-druzhnim/
description = models.TextField(blank=True, verbose_name="Опис")
@sunmeat
sunmeat / Program.java
Created March 13, 2026 11:05
кастомний джейсон серіалізатор
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Program {
public static void main(String[] args) {
Map<String, Object> person = new LinkedHashMap<>();
person.put("name", "Олег");
person.put("age", 28);
@sunmeat
sunmeat / different files.cpp
Created March 13, 2026 09:00
one server multiple clients C++ example (TCP) - MacOS
CLIENT SIDE:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <iostream>
#include <string>
#include <thread>
#include <cstring>
@sunmeat
sunmeat / main.cpp
Created March 13, 2026 08:25
створення потоку (MacOS)
#include <iostream>
#include <thread>
#include <chrono>
#include <string>
using namespace std;
// Функція для оновлення заголовка вікна терміналу
void updateTimeInWindowTitle() {
while (true) {
@sunmeat
sunmeat / task.md
Created March 7, 2026 14:06
ДЗ на сортування, пагінацію та фільтрацію

Завдання: Сортування, фільтрація та посторінкова навігація в фінальному командному курсовому проєкті Необхідно реалізувати наступну функціональність для зручного перегляду даних:

  • Сортування даних за різними критеріями
  • Фільтрація даних за певними критеріями
  • Посторінкова навігація (пагінація), щоб користувач міг легко переміщатися між сторінками результатів. Ці можливості мають працювати разом: користувач може спочатку відфільтрувати дані, потім відсортувати отриманий список і переглядати його по сторінках. Можна реалізувати все вручну, або з використанням бібліотек.