LINUX.ORG.RU

Моя программа «Школьный день»

 , , , ,


0

3

Всем привет! Мне 14 лет, учусь в 7 классе. Для школьной научно-практической конференции по информатике решил разработать собственную программу «Школьный день».

Это независимый планировщик расписания уроков и домашних заданий, который не требует регистрации или подключения к электронному дневнику. Можно добавлять уроки, указывать время и кабинеты, записывать домашние задания и отмечать их выполнение. Я постарался сделать всё максимально простым, чтобы ручной ввод занимал минимум времени.

Программа написана на Rust с использованием GTK4 и libadwaita. Есть сборки для Linux и Windows (в будущем планируется на mac).

Сейчас доступна версия 0.4.0. В разработке мне помогал ИИ, и часть кода была написана с его помощью. При этом я самостоятельно тестирую приложение, исправляю ошибки и постепенно пишу на Rust. После первых отзывов уже удалось исправить несколько недочётов и настроить автоматическую сборку Windows.

Исходный код опубликован на GitHub. Хотелось бы, чтобы программой могли пользоваться и другие школьники, а разработка продолжалась после конференции.

Понимаю, что в коде ещё могут быть ошибки и неудачные решения, поэтому буду рад советам более опытных разработчиков.

Если захотите попробовать программу, сообщить об ошибке или помочь с разработкой - буду рад.

Исходный код и установщики: https://github.com/sqeezy-53/school-day



Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Надо добавить разных активностей: занятия в продленке, кружки всякие, драки за гаражом, покурить под стелсом, олимпиады школьные и внешкольные - все такое.

Irma ★★★★
()

В разработке мне помогал ИИ

Оцени свой вклад в код, сколько из него написал ИИ. Или это чистый вайбкод, а ты тестируешь и говоришь что исправить?

einhander ★★★★★
()
Ответ на: комментарий от Irma

Спасибо за предложение! В будущих версиях постараюсь добавить больше активностей, в том числе кружки, дополнительные занятия и олимпиады. Сейчас основное внимание уделяю исправлению ошибок, улучшению читаемости кода и стабильности приложения. Постепенно буду расширять функционал.

sqeezy-53
() автор топика
Ответ на: комментарий от einhander

Точный процент не подсчитывал, но значительная часть кода, особенно на начальных этапах, была написана с помощью ИИ. Сам я занимаюсь тестированием, поиском ошибок, стараюсь разбираться в написанном коде и постепенно учусь писать самостоятельно. Сейчас как раз исправляю замечания опытных разработчиков и пытаюсь делать это уже своими силами. Все же ии нужно использовать как инструмент

sqeezy-53
() автор топика
Ответ на: комментарий от nuxster

Нету:) Просто искал места где действительно можно распространить проект и получить обратную свзяь

sqeezy-53
() автор топика
Ответ на: комментарий от amd_amd

Ну вообще-то, при здоровом использовании калькулятор именно что помогает считать.

Ещё наш лектор по ТОЭ 35 лет назад глумился над теми, кто некритически списывает результаты с калькулятора и готов прохлопать ошибку результата на порядок из-за неправильного ввода. Он же нам показывал приблизительную таблицу умножения:

2*2=5
3*3=10
4*4=15

Которая позволяет быстро сосчитать устно, хотя бы прикинуть, на что должны быть похожи результаты. А уже на калькуляторе, да, можно получить более точный результат.

И с ИИ то же самое. ИИ при правильном использовании должен быть именно помощником. Хотя я вот тут книжку Юдковского прикупил и пугаю ей всех окружающих… :)))

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Скоро AppImage Добавлю, пользователь сможет выбрать как ему удобнее

sqeezy-53
() автор топика
Ответ на: комментарий от sqeezy-53

Ага. Автор вообще весьма интересный, самое его известное, пожалуй, произведение – это фанфик «Гарри Поттер и методы рационального мышления», мне как человеку, с интересом в своё время прочитавшему весь цикл Роулинг, зашло очень хорошо. При этом в книгах Роулинг мне сильно не нравилась линия Дурслеев, я считал её неудачной безблагодатной халтурой. Поэтому фанфик, где нет Дурслеев и при этом есть куча отсылок к разным научным областям, я просто не мог не прочитать.

Ну а вообще он футуролог, в своё время заинтересовался ИИ… и очень быстро, разобравшись, как оно работает, из фаната превратился в скептика. Считает, что распространение ИИ надо ограничивать такими же методами, как в своё время распространение ядерного оружия (ну и с оружием, надо признать, в своё время помогло).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

«верните школьникам дельфи!»

Молодец. Но такого рода дизайн имеет смысл писать например на flutter - потому что выглядит как приложение для телефона, а на flutter будет сразу переносимо.

Shadow ★★★★★
()

Зачем оно нужно если домашнее задание и прочее нужно вписывать вручную? Добавь синхронизацию с электронным дневником

green274
()
Ответ на: комментарий от green274

Синхронизация с электронным дневником была бы удобной, но доступ к API таких систем не всегда открыт для сторонних разработчиков. Например, интеграция с системой «Моя школа» требует согласования доступа и соблюдения установленных требований. При этом сама система использует авторизацию через Госуслуги

При этом я изначально задумывал программу как независимый планировщик. Я постарался максимально упростить добавление уроков и домашних заданий, чтобы ручной ввод занимал минимум времени. Поэтому предлагаю сначала попробовать приложение, а уже потом оценивать, насколько удобно в нём всё реализовано.

sqeezy-53
() автор топика

Не вполне понятно, какую задачу решает приложение и зачем оно нужно, если есть «Электронный дневник» и есть бумажный дневник. Оно, к тому же, исключительно десктопное. Это надо с ноутбуком по школе ходить или, придя домой, переносить в программу данные из электронного или бумажного дневника? Чтобы что? Чтобы выполненные д/з отмечать чекбоксами? У меня никогда не возникало проблемы, что я забыл выучить историю, потому что у меня не было чекбокса в дневнике. Или программа нужна, чтобы сохранить историю перехода между классными комнатами для потомков?

Логистика у каждой школы своя. Где-то кабинеты закреплены за классом, а учителя приходят и уходят. Где-то кабинеты закреплены за учителями, а ходят между кабинетами уже ученики. Где-то кочуют все. Школам, где кочуют все, не помешало бы централизованное решение, где завуч распределяет учеников, учителей и кабинеты, а ученики и учителя на смартфоне видят, куда им идти. Возможно, «Электронный дневник» эту проблему уже решает.

Как надстройка-органайзер с мобильной версией над «Электронным дневником» приложение, возможно, имело бы смысл.

В институте у меня был КПК с Windows Mobile. Там я завел XLS-таблицу, куда вносил предметы и аудитории из расписания. Было удобно. Дневники мы не вели, а вместо этого записывали д/з в тетради. Для оценок же вполне хватало журнала. Это я к тому, что совсем без дневника тоже есть жизнь.

P.S. Если смысл - просто попрактиковаться и собрать поддержку и одобрение на ЛОРе, ничего не имею против. Польза учебного проекта - не в том, чтобы решать насущные задачи.

Vidrele ★★★★★
()
Ответ на: комментарий от Vidrele

Спасибо за такой ответ! Хотелось бы немного объяснить, откуда вообще появилась идея этой программы.

Всё началось с довольно простой ситуации: по утрам перед школой мне приходилось заходить в MAX, открывать фотографию расписания и смотреть, какие сегодня уроки. Конечно, можно просто собирать рюкзак с вечера, но мне захотелось сделать что-то более удобное.

Так и появилась идея. Расписание в программе можно заполнить достаточно быстро, к тому же я реализовал автоматическое распределение времени уроков, чтобы не приходилось вручную указывать время начала и окончания каждого из них. Достаточно один раз настроить расписание, и дальше оно всегда будет под рукой.

С домашними заданиями ситуация похожая. Я прекрасно понимаю, что уже существуют Obsidian, различные списки задач и другие планировщики. Но мне хотелось объединить расписание и домашние задания в одном приложении, чтобы не приходилось постоянно переключаться между разными программами. При этом задания привязаны к урокам, и их можно добавлять заранее

Я совершенно не считаю, что моя программа необходима каждому школьнику или должна заменить электронный дневник. Для кого-то обычного дневника вполне достаточно, и это нормально. Просто я столкнулся с определённым неудобством и решил попробовать решить его самостоятельно.

Насчёт того, что приложение исключительно десктопное, замечание справедливое. Мобильную версию я действительно планирую, поскольку понимаю, насколько удобнее было бы пользоваться таким планировщиком на телефоне. Пока же программа в первую очередь рассчитана на домашнее использование.

И да, проект действительно учебный, но я не хочу ограничиваться одной конференцией. С каждым днём стараюсь его развивать, исправлять ошибки, добавлять новые возможности и одновременно лучше разбираться в Rust.

Спасибо за критику! Мне действительно интересно узнавать, как другие люди смотрят на мой проект.

sqeezy-53
() автор топика
Ответ на: комментарий от frunobulax

а чем хорошо? скоро так совсем отупеете - языки программирования забудите, как человек не имеющий к айти совершенно никакого отношения - в глубине души преживаю за вас.

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

а чем хорошо? скоро так совсем отупеете - языки программирования забудите

Полюбому. Примерно как из-за калькулятора математики забыли, как считать и окончательно отупели. Так ведь и было :)

CrX ★★★★★
()
Ответ на: комментарий от luke

Ты любую группу людей, говорящих неприятные и немейнстримовые вещи, называешь «сектой»? Или есть какие-то признаки сектантства в данном случае? Я прочёл – никакого «я ваш гуру, верьте мне» там нет, когда он считает, что может ошибаться, он прямо об этом пишет.

hobbit ★★★★★
()

Не «Школьные дни» и на этом спасибо.

a1ba ★★★★
()

Молодец! Только cargo.lock зачем закоммитил? Этот файл cargo сам создает. Убери из коммита и пропиши .gitignore.

Теперь попробуй осилить задачу составления расписания уроков для всей школы. Предупреждаю: задачка классическая и довольно сложная в общем случае.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Спасибо! Насколько я понимаю, для готовых приложений на Rust как раз рекомендуется хранить cargo.lock в репозитории, чтобы фиксировать версии зависимостей и обеспечивать более воспроизводимые сборки. Это также указано в официальной документации cargo, поэтому я решил оставить его в гите.

sqeezy-53
() автор топика
Ответ на: комментарий от sqeezy-53

Я уточню, спасибо. Мне казалось, что срез зависимостей в cargo.toml прописывается. Ну пусть так, хорошо.

gns ★★★★★
()
Ответ на: комментарий от gns

Теперь попробуй осилить задачу составления расписания уроков для всей школы.

Коварен, брат! Ну ничего, ИИ наверняка найдёт готовые решения этой «классической задачки» и закодит какое-нибудь из них, останется только протестировать

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Это не интересно. :) Интересно прочитать Пападимитриу и Стайглица и понять как это делается. Иначе ничему не научишься. Писать промпты для ИИ — это другая задача.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Идея хорошая, но реализовывать такое в программе пока не планирую. Программа изначально создавалась как личный планировщик, а не как система составления расписания для целой школы. К сожалению, она не предназначена для таких задач.

sqeezy-53
() автор топика
Ответ на: комментарий от sqeezy-53

Например, интеграция с системой «Моя школа» требует согласования доступа и соблюдения установленных требований. При этом сама система использует авторизацию через Госуслуги

Но ведь «мою школу» можно открыть в почти любом веб-броузере? Чем твоё приложение хуже веб-броузера? Получит данные из интернета, точно так же как это делает броузер. Но затем, вместо того, чтобы сразу отображать их на экран как это делает броузер, использует их для автоматического заполнения планов.. Чтобы вручную поменьше впечатывать

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 2)
Ответ на: комментарий от Manhunt

Открыть «Мою школу» в браузере и автоматически получать из неё данные в стороннем приложении всё-таки разные вещи. Для этого нужна авторизация через Госуслуги, причём пользователь в любом случае должен иметь учётную запись. Сессия может истечь, авторизация сброситься, и пользователю придётся входить заново. Кроме того, любое изменение на сайте может нарушить работу такой интеграции. Будем честны, надёжным такое решение назвать сложно.

К тому же в разных регионах используются разные электронные дневники, поэтому универсальную синхронизацию реализовать ещё сложнее. Пока я не планирую такую интеграцию, поскольку «Школьный день» изначально задумывался как независимый планировщик.

sqeezy-53
() автор топика
Ответ на: комментарий от nullb0t

Согласен с вами. Но опять же, в будущем уже планируется полноценное аndroid-приложение. Это лишь вопрос времени.

sqeezy-53
() автор топика

https://github.com/sqeezy-53

he/him

Ты в курсе что это исключительно WOKE шиза? Или ты в силу своего возраста не понимаешь, почему на гитхабе у некоторых так прописано?

nullb0t ★
()
Последнее исправление: nullb0t (всего исправлений: 1)
Ответ на: комментарий от sqeezy-53

Да это понятно. Личный календарь — дело тоже нужное. Учись. Пиши программы: которыми сам будешь пользоваться. А методы оптимизации — это следующий и необходимый этап. Там много что на тебя вывалится. Лишь бы было интересно. Вот тебе хороший сборник задач —

Чарльз Уэзерелл «Этюды для программистов» (djvue) — https://vk.ru/wall-54530371_658

https://royallib.com/read/uezerell_charlz/etyudi_dlya_programmistov.html

gns ★★★★★
()
Ответ на: комментарий от amd_amd

это как калькулятор помогал считать

У калькулятора нет целеполагания (как и у ИИ)

annulen ★★★★★
()
Ответ на: комментарий от nullb0t

Не совсем понимаю, какое отношение местоимения в моём GitHub-профиле имеют к обсуждению программы. Это обычная настройка профиля, не более.

sqeezy-53
() автор топика
Ответ на: комментарий от sqeezy-53

Для этого нужна авторизация через Госуслуги, причём пользователь в любом случае должен иметь учётную запись. Сессия может истечь, авторизация сброситься, и пользователю придётся входить заново.

Ну авторизоваться-то всяко быстрее, чем вручную всё заполнять?

Кроме того, любое изменение на сайте может нарушить работу такой интеграции. Будем честны, надёжным такое решение назвать сложно.

Угу, надо оперативно исправлять код работы с API и доставлять пользователям исправленный парсер (скачивать его с сервера, где ты будешь его публиковать). Предположу, что обновляемый парсер должен быть скреплен твоей цифровой подписью, и перед его запуском эту подпись надо проверять, чтобы избежать взлома пользователя через MITM.

К тому же в разных регионах используются разные электронные дневники, поэтому универсальную синхронизацию реализовать ещё сложнее.

Всё так, это большой объем работы.

Пока я не планирую такую интеграцию, поскольку «Школьный день» изначально задумывался как независимый планировщик.

Это получается не независимый, а сферический в вакууме. Полностью оторванный от того мира, для которого должен был составлять планы. Не очень-то удобно таким пользоваться.

Manhunt ★★★★★
()
Ответ на: комментарий от sqeezy-53

Отдельно выделять pronouns как указание «как к тебе следует обращаться» изобретение исключительно WOKE культуры. Фича была добавлена под влиянием WOKE лобби https://github.blog/changelog/2023-02-28-add-pronouns-to-your-github-profile/ (десятилетия без этой фичи внезапно почему-то всех устраивало и никто не задумывался что оно вообще нужно). https://www.reddit.com/r/NoStupidQuestions/comments/vb3aca/is_woke_culture_including_pronouns_gender/

nullb0t ★
()
Ответ на: комментарий от hobbit

Хотя я вот тут книжку Юдковского прикупил и пугаю ей всех окружающих… :)))

гм. стоит ли прочесть?

AndreyKl ★★★★★
()
Ответ на: комментарий от sqeezy-53

Главное, помни — презентации своего софта/репы/etc на ЛОР нужна только для тренировки психологической устойчивости и выдержки в интернете, а не для чего-то конструктивного.

shahid ★★★★★
()
Ответ на: комментарий от hobbit

ТОЭ

Первой в голове мелькнула мысль, что это «Теори ов эврисинг»

buddhist ★★★★★
()
Ответ на: комментарий от hobbit

С точки зрения физика все нечетные числа — простые. :) Один — простое, три — простое, пять — простое, семь — простое, девять — ошибка эксперимента, одиннадцать — простое, тринадцать — простое.

gns ★★★★★
()

Можно добавлять уроки, указывать время и кабинеты, записывать домашние задания и отмечать их выполнение

Возможный следующий шаг: вызывать ИИ-агента с промтами домашних заданий, авто-ревью другим агентом, затем передача на ревью пользователю.

shahid ★★★★★
()
Ответ на: комментарий от sqeezy-53

Достаточно один раз настроить расписание, и дальше оно всегда будет под рукой.

«Имеет смысл мне завтра после поликлиники возвращаться в школу? Там будет замена общаги на ОБЖ, народ будет заниматься своими делами, и замена физики на ТПП, который я уже весь сдала» (с) обыденный разговор со старшеклассницей вечером.

Adamos ★★★
()

Rust с использованием GTK4

В Rust есть egui и iced. Нет смысла привязываться к GTK4. Так ты просто кушаешь г..но, которое ели плюсовики и объектники 30 лет.

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 2)

Хорошее начинание, но ты не научишься программировать, если свои первые шаги делаешь не сам, а с помощью слоп-машины. В этом же суть и заключается: тебе надо уложить в голове, как разбивать задачу на маленькие части, как структурировать код, набить шишки, научиться обращаться с документацией. У погромиста вообще самый главный навык - это быстрое освоение чего-то нового.

Так что лучше отложи нейронку и делай всё сам. Благо, документации и туториалов даже на русском языке сейчас пруд пруди. Будешь учиться сам - станешь ценным специалистом.

liksys ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.