Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
c8ddbd4
I am doing some functions and write some sql requests (if build dir )
Spelaya-melon-X Feb 16, 2025
e951ce5
i am fixed the code operation
Spelaya-melon-X Feb 16, 2025
2d90552
add foto +normal READMDE
Spelaya-melon-X Feb 16, 2025
ebcbd14
Update README.md
Spelaya-melon-X Feb 16, 2025
515bec6
Update README.md
Spelaya-melon-X Feb 16, 2025
b5445c2
Update README.md
Spelaya-melon-X Feb 16, 2025
5d549e9
Update README.md
Spelaya-melon-X Feb 16, 2025
c2d3a01
I have created my own classes and methods for each of the tables in t…
Spelaya-melon-X Feb 25, 2025
d4805bb
I got rid of unnecessary files.
Spelaya-melon-X Feb 25, 2025
dda2a21
add fucntion for read vector all student_id and person_id
Spelaya-melon-X Mar 2, 2025
081da61
FOR MATVEY : examples of code templates that I want to rewrite the re…
Spelaya-melon-X Mar 5, 2025
9ffb5f2
FOR MATVEY : A simple test has been written , and the functions via t…
Spelaya-melon-X Mar 9, 2025
4d22559
FOR MATVEY : edit bags
Spelaya-melon-X Mar 9, 2025
6661e2d
in proccess...
Spelaya-melon-X Mar 9, 2025
a6104cf
Create All Tables
Spelaya-melon-X Mar 9, 2025
07dfb20
create 1 part table
Spelaya-melon-X Mar 9, 2025
1f7dfec
eddit database photo
Spelaya-melon-X Mar 9, 2025
189c3fe
feat(db): add Feedback_URL and Feedback_Request tables; refactor Filt…
EgorLukavenko Mar 9, 2025
b39c22e
corrections Bad Tables
Spelaya-melon-X Mar 10, 2025
407bce3
CORRECTING classes , i am do normal Read Function
Spelaya-melon-X Mar 12, 2025
22b6653
Add classes for Create All tables and Delete all tables
Spelaya-melon-X Mar 16, 2025
3ff1e32
rewrite comments from Russian to English and delete unnecessary files
Spelaya-melon-X Mar 16, 2025
8af46ed
merge dev/kalashnikov and pre-main
Spelaya-melon-X Mar 16, 2025
9dcc8ef
delete inc src
Spelaya-melon-X Mar 16, 2025
f24b59c
delete trash file
Spelaya-melon-X Mar 16, 2025
814fad0
inc --> inclue in .hpp file
Spelaya-melon-X Mar 16, 2025
a2df7c1
The implementation of BaseCrud has been changed, a new class has been…
Spelaya-melon-X Mar 19, 2025
c268650
do all
Spelaya-melon-X May 17, 2025
60338ab
do all
Spelaya-melon-X May 17, 2025
9e75150
add new function + upate all
Spelaya-melon-X May 23, 2025
26b98fe
add new
Spelaya-melon-X May 24, 2025
e8a6e96
bla bla
Spelaya-melon-X Jun 2, 2025
8fb07dc
bla blaa
Spelaya-melon-X Jun 2, 2025
fd55c19
bla blaaaa
Spelaya-melon-X Jun 2, 2025
8c09b63
add TODO list for comand
Spelaya-melon-X Jun 3, 2025
44fa247
delete old version and create todo list for comadmd
Spelaya-melon-X Jun 3, 2025
a125de9
debug problems , add new function for my teem
Spelaya-melon-X Jun 5, 2025
0026984
erroe debug
Spelaya-melon-X Jun 6, 2025
f5fc772
f
Spelaya-melon-X Jun 6, 2025
c6cab55
fa
Spelaya-melon-X Jun 6, 2025
45ea6b9
debug
Spelaya-melon-X Jun 7, 2025
436a842
nafig int
Spelaya-melon-X Jun 7, 2025
5023ae9
DeletePerson now with tg_nick
Spelaya-melon-X Jun 9, 2025
160e10b
DeletePerson now with tg_nick
Spelaya-melon-X Jun 9, 2025
e3ef64e
debug delete functuons
Spelaya-melon-X Jun 9, 2025
03b4886
bla
Spelaya-melon-X Jun 13, 2025
6b76605
bla
Spelaya-melon-X Jun 13, 2025
ec580c0
dop_function
Spelaya-melon-X Jun 14, 2025
4147eca
bla
Spelaya-melon-X Jun 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions .idea/EntryPoint.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

319 changes: 319 additions & 0 deletions .idea/editor.xml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"version": 4,
"configurations": [
{
"name": "macos-clang-arm64",
"compilerPath": "/usr/bin/clang",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "macos-clang-arm64",
"includePath": [
"${workspaceFolder}/**"
],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"defines": []
}
]
}
13 changes: 13 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Runner: Debug Session",
"type": "lldb",
"request": "launch",
"args": [],
"cwd": "/Users/qwertz/Desktop/code/EntryPoint/new_Version/source",
"program": "/Users/qwertz/Desktop/code/EntryPoint/new_Version/source/build/Debug/outDebug"
}
]
}
123 changes: 123 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{
"files.associations": {
"iostream": "cpp",
"algorithm": "cpp",
"cmath": "cpp",
"__locale": "cpp",
"__threading_support": "cpp",
"__verbose_abort": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"initializer_list": "cpp",
"ios": "cpp",
"iosfwd": "cpp",
"istream": "cpp",
"limits": "cpp",
"locale": "cpp",
"mutex": "cpp",
"new": "cpp",
"ostream": "cpp",
"print": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"string": "cpp",
"string_view": "cpp",
"tuple": "cpp",
"typeinfo": "cpp",
"__bit_reference": "cpp",
"__hash_table": "cpp",
"__node_handle": "cpp",
"__split_buffer": "cpp",
"array": "cpp",
"complex": "cpp",
"cstdarg": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"execution": "cpp",
"memory": "cpp",
"optional": "cpp",
"queue": "cpp",
"ratio": "cpp",
"sstream": "cpp",
"stack": "cpp",
"unordered_map": "cpp",
"variant": "cpp",
"vector": "cpp",
"forward_list": "cpp",
"list": "cpp",
"map": "cpp",
"span": "cpp",
"pqxx": "cpp",
"txn": "cpp",
"fstream": "cpp",
"iomanip": "cpp",
"__availability": "cpp",
"__config": "cpp",
"iterator": "cpp"
},
"C_Cpp_Runner.msvcBatchPath": "",
"C_Cpp_Runner.cCompilerPath": "clang",
"C_Cpp_Runner.cppCompilerPath": "clang++",
"C_Cpp_Runner.debuggerPath": "lldb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wcast-align",
"-Wconversion",
"-Wsign-conversion",
"-Wnull-dereference"
],
"C_Cpp_Runner.msvcWarnings": [
"/W4",
"/permissive-",
"/w14242",
"/w14287",
"/w14296",
"/w14311",
"/w14826",
"/w44062",
"/w44242",
"/w14905",
"/w14906",
"/w14263",
"/w44265",
"/w14928"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
],
"C_Cpp_Runner.useAddressSanitizer": false,
"C_Cpp_Runner.useUndefinedSanitizer": false,
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false
}
7 changes: 2 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
# EntryPoint
Проект на плюсах от 3 амбициозных пацанчиков


### Чуток описание проекта :
Телеграмм-бот с авторизацией для студентов, преподавателей, администрации, организаторов учебного процесса (учебный офис, кураторы и т.п.). Среди базового функционала присутствуют: система анонимной студенческой оценки преподавания, система донесения информации от учебного офиса, преподавателей и кураторов до студентов c подтверждением получения (в т.ч. ссылок на чаты и объявлений). Возможность поддержания полезной информации о предметах внутри бота (ссылки, таблицы, папки, чаты, файлы) с возможностью изменения студентами (как wiki, просмотр изменений).

database structure:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

переместить в docs/

![Database Structure](database2.jpeg)
55 changes: 55 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@

такс , задачи на сегодня :

#### Тимофей :
- сделать начальный интерфейс. Вход осуществляется через СНИЛС/ Пороль , в зависимости от ввода которого тебя перебрасывает на какую-то область в которой ты будешь взаимодействовать с ботом.
Админ (кнопочки) :

- открыть соп для людей . При ее нажатии посылается запрос в базу данных , который всех людей с role = Student перекидывает в табличку в базе данных Sop и назначает им статус - "NOT_STARTED" ( также есть еще и "STARTED" , "PASSED" ) они назначаются когда человек нажимает на кнопку закончить и отрпавить соп . "STARTED" назначается когда студент со своего аккаунта нажал на кнопочку пройти соп , обновление идет через нажатие метода - UpdateStatus в табличке Sop_Form.

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

#### Егор :
- сделать метод который читает таблицу для вставки студентов с програмой + курс в формате допустим (ПМИ_1 , ПАДИИ_2 , ФКН_4 ) . Она состоит из полей : (Фамилия | Имя | ТГ ник | СНИЛС | ГРУППА | ) . Задача Егора прочитать данные из таблички и записать данные в struct Person. так чтобы :
```cpp
struct Person{
std::string first_name; <-- было заполнено из таблицы
std::string last_name;<-- было заполнено из таблицы
std::string tg_nick; <-- было заполнено из таблицы
int access; <-- было передан 0 в качестве значения
int snils; <-- из таблицы
std::string role; <-- Student
std::string subject_name ; <-- значение None ( то есть у студента не определен предмет )
std::string course_name; <-- цифера около ПМИ_(1) <-- 1 , ПАДИИ_(2) <-- 2 в string
std::string program_name; <-- Название таблички - ПМИ / ПАДИИ / ФКН (из примера)
std::string people_group_name; <-- группа из таблицы
}
```
- также аналогичную штуку нужно сделать для добавление лекторов/ практиков. Для таблички , только структура таблички и заполнение этих полей будет другое.

```cpp
struct Person{
std::string first_name; <-- из таблицы
std::string last_name; <-- из таблицы
std::string tg_nick; <-- из таблицы ( мы предпологаем что у всех есть тг. пох на храбра)
int access; <-- 1
int snils; <-- из таблицы
std::string role; <-- из таблицы Lector / Pactitioner
std::string subject_name; <-- из таблицы
std::string course_name; <-- из таблицы
std::string program_name; <-- из таблицы
std::string people_group_name; <-- если Lector - то 0 , Если Pactitioner - то из таблицы
};
```


#### Даня
<!-- - протесить метод который принимает Person и взаимудейстует с ним -->

<!-- - сделать так , чтобы все прокидывались в табичку SOP_Form по нажатию кнопки "Открыть соп". -->

<!-- - переделать UpdateTgAnswer , UpdateUrlAnswer так чтобы ответ в виде json конкатеринровал к текущей строке -->

<!-- - сделать метод , который назначает всем людям из таблички Sop_Form произвольные статусы - допустим NOT_STARTED -->
Binary file added database2.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions new_Version/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
cmake_minimum_required(VERSION 3.10)
project(EP_dpw VERSION 1.0 LANGUAGES CXX)

# Настройка стандарта C++
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Добавляем пути поиска для Homebrew
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/libpqxx")
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/libpq")
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/fmt")
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/googletest")

# Поиск зависимостей
find_package(fmt REQUIRED)

# Для libpqxx используем альтернативный подход
find_path(LIBPQXX_INCLUDE_DIR pqxx/pqxx)
find_library(LIBPQXX_LIBRARY NAMES pqxx)

# Для PostgreSQL
find_package(PostgreSQL REQUIRED)

# Исходные файлы
file(GLOB SOURCES "source/*.cpp")
file(GLOB HEADERS "include/*.hpp")

# Исполняемый файл
add_executable(${PROJECT_NAME}
main.cpp
${SOURCES}
${HEADERS}
)

# Подключение заголовочных файлов
target_include_directories(${PROJECT_NAME} PRIVATE
include/
${LIBPQXX_INCLUDE_DIR}
${PostgreSQL_INCLUDE_DIRS}
${FMT_INCLUDE_DIR}
)

# Линковка библиотек
target_link_libraries(${PROJECT_NAME} PRIVATE
${LIBPQXX_LIBRARY}
${PostgreSQL_LIBRARIES}
fmt::fmt
)

# Подавление предупреждений
target_compile_options(${PROJECT_NAME} PRIVATE
-Wno-unknown-attributes
)
76 changes: 76 additions & 0 deletions new_Version/CreateAllTable.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@


-- Таблица People
CREATE TABLE IF NOT EXISTS People (
person_id SERIAL PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
tg_nick VARCHAR(100) UNIQUE,
access INT ,
snils INT

);

-- Таблица Role
CREATE TABLE IF NOT EXISTS Role (
role_id SERIAL PRIMARY KEY,
role_name VARCHAR(100) NOT NULL
);

-- Таблица связи Person_Role (многие-ко-многим между People и Role)
CREATE TABLE IF NOT EXISTS Person_Role (
person_id INT REFERENCES People(person_id),
role_id INT REFERENCES Role(role_id),
PRIMARY KEY (person_id, role_id)
);

-- Исправленная таблица Course (была опечатка в названии Cource)
CREATE TABLE IF NOT EXISTS Course (
course_id SERIAL PRIMARY KEY,
course_name VARCHAR(100) NOT NULL -- Исправлено с INT на VARCHAR
);

-- Таблица People_Group (исправлено с Group на People_Group)
CREATE TABLE IF NOT EXISTS People_Group (
people_group_id SERIAL PRIMARY KEY,
people_group_name VARCHAR(100) NOT NULL -- Исправлено с INT на VARCHAR
);

-- Таблица Program
CREATE TABLE IF NOT EXISTS Program (
program_id SERIAL PRIMARY KEY,
program_name VARCHAR(100) NOT NULL
);

-- Таблица Subjects (должна быть создана до Teaching_Assignment)
CREATE TABLE IF NOT EXISTS Subjects (
subject_id SERIAL PRIMARY KEY,
subject_name VARCHAR(100) NOT NULL
);

-- Таблица Subject_Offer (с правильными ссылками)
CREATE TABLE IF NOT EXISTS Subject_Offer (
offer_id SERIAL PRIMARY KEY,
people_group_id INT REFERENCES People_Group(people_group_id),
program_id INT REFERENCES Program(program_id),
course_id INT REFERENCES Course(course_id)
);

-- Таблица Teaching_Assignment (исправлено название с Teaching_Assingment)
CREATE TABLE IF NOT EXISTS Teaching_Assigment (
assignment_id SERIAL PRIMARY KEY,
person_id INT REFERENCES People(person_id),
offer_id INT REFERENCES Subject_Offer(offer_id),
subject_id INT REFERENCES Subjects(subject_id)
);

-- Таблица Sop_Form с использованием созданного типа ENUM
CREATE TABLE IF NOT EXISTS Sop_Form (
sop_id SERIAL PRIMARY KEY,
person_id INT REFERENCES People(person_id),
url_out_sop VARCHAR(100) NOT NULL,
sop_status VARCHAR(100) NOT NULL,
tg_answer TEXT, -- Исправлено с NTEXT на TEXT
url_answer TEXT -- Исправлено с NTEXT на TEXT
);

Loading