Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
62f2730
Update dokumentacja_backend.md wersja 2.0
DevStranger Feb 5, 2025
8ba4d94
Update dokumentacja_frontend.md wersja 2.0
DevStranger Feb 5, 2025
284cb25
Update api_endpoints.md wersja 1.1
DevStranger Feb 5, 2025
d43fc57
Update api_endpoints.md wersja 1.2
DevStranger Feb 5, 2025
990ddc6
Update api_endpoints.md wersja 2.0
DevStranger Feb 5, 2025
62b8b21
poprawkiv2
juliaa123445 Feb 5, 2025
864c01b
Add files via upload
yyxxy-sudo Feb 5, 2025
dae8513
Delete templates directory
yyxxy-sudo Feb 5, 2025
733b7a7
Add files via upload
yyxxy-sudo Feb 5, 2025
26674e5
Delete apka/app directory
yyxxy-sudo Feb 5, 2025
68b3caf
Add files via upload
yyxxy-sudo Feb 5, 2025
95695dd
Delete apka/app directory
yyxxy-sudo Feb 5, 2025
149229e
Add files via upload
yyxxy-sudo Feb 5, 2025
9c41e80
Update api_endpoints.md wersja 2.1 (drobne poprawki)
DevStranger Feb 5, 2025
aa4b469
Update dokumentacja_backend.md wersja 3.0 (aktualizacja)
DevStranger Feb 5, 2025
bd9e163
Update dokumentacja_frontend.md wersja 3.0 (aktualizacja)
DevStranger Feb 5, 2025
14cd822
Update dokumentacja_frontend.md wersja 3.1 (drobne poprawki)
DevStranger Feb 5, 2025
e75b6ad
Update api_endpoints.md wersja 3.2 (poprawa literówek)
DevStranger Feb 5, 2025
01820fa
Delete dokumentacja/dokumentacja_inżynierii_wymagań.md
DevStranger Feb 5, 2025
02643e3
Create dokumentacja_inżynierii_wymagań
DevStranger Feb 5, 2025
b2b50d1
Rename dokumentacja_inżynierii_wymagań to dokumentacja_inżynierii_wym…
DevStranger Feb 5, 2025
f2a4b72
Update dokumentacja_inżynierii_wymagań.md
DevStranger Feb 5, 2025
ec4a79a
Update dokumentacja_inżynierii_wymagań.md
DevStranger Feb 5, 2025
6f8a79a
Update dokumentacja_inżynierii_wymagań.md
DevStranger Feb 5, 2025
0f7e10c
Merge branch 'main' into zycie_to_ciezka_sprawa
DevStranger Feb 5, 2025
e4d4d7b
Merge pull request #12 from DevStranger/zycie_to_ciezka_sprawa
DevStranger Feb 5, 2025
b29d406
Update testy_funkcjonalne.md (integracja z kalendarzem)
DevStranger Feb 5, 2025
239865b
Update testy_funkcjonalne.md
DevStranger Feb 5, 2025
e0a6563
Create google_test.js
DevStranger Feb 5, 2025
ea93808
Create teams_test.js
DevStranger Feb 5, 2025
65236ce
Update testy_funkcjonalne.md
DevStranger Feb 5, 2025
41e9d86
Delete apka/app directory
yyxxy-sudo Feb 5, 2025
b001044
Add files via upload
yyxxy-sudo Feb 5, 2025
820c02b
Create zoom_test.js
DevStranger Feb 5, 2025
763914e
Update testy_funkcjonalne.md [zoom]
DevStranger Feb 5, 2025
bdea6ea
Update testy_funkcjonalne.md
DevStranger Feb 5, 2025
fb89ee4
Delete apka/app directory
yyxxy-sudo Feb 5, 2025
446e775
Add files via upload
yyxxy-sudo Feb 5, 2025
c54c868
.env
yyxxy-sudo Feb 5, 2025
526b33d
Create send_nudes.js
DevStranger Feb 5, 2025
3765046
Rename send_nudes.js to send_notes.js
DevStranger Feb 5, 2025
83965b9
Update testy_funkcjonalne.md
DevStranger Feb 5, 2025
0e59164
Update testy_funkcjonalne.md ✔
DevStranger Feb 5, 2025
f8a7530
Create śmieciek
DevStranger Feb 5, 2025
3749daf
Rename testy/google_test.js to testy/testcafe/google_test.js
DevStranger Feb 5, 2025
30d4e5b
Rename testy/send_notes.js to testy/testcafe/send_notes.js
DevStranger Feb 5, 2025
5e47eff
Rename testy/teams_test.js to testy/testcafe/teams_test.js
DevStranger Feb 5, 2025
747da87
Update and rename testy/tests.js to testy/testcafe/tests.js
DevStranger Feb 5, 2025
b58af7e
Rename testy/zoom_test.js to testy/testcafe/zoom_test.js
DevStranger Feb 5, 2025
ca1b722
Delete testy/testcafe/śmieciek
DevStranger Feb 5, 2025
8dc34a2
Update testy_funkcjonalne.md
DevStranger Feb 5, 2025
5ef3048
czytelność!
olaadam Feb 5, 2025
a9e377b
Update testy_funkcjonalne.md url update
DevStranger Feb 5, 2025
ed30721
Update testy_funkcjonalne.md poprawki
DevStranger Feb 5, 2025
ef6b27e
Update dokumentacja_inżynierii_wymagań.md logo
DevStranger Feb 5, 2025
cac28d9
Update dokumentacja_frontend.md uzupełnienie dokumentacji
DevStranger Feb 5, 2025
fb85746
Update README.md final
DevStranger Feb 5, 2025
e36ff6e
Create SECURITY.md
DevStranger Feb 5, 2025
900ca37
Update SECURITY.md
DevStranger Feb 5, 2025
3a7536c
wizualka+załącznik (warning)
olaadam Feb 5, 2025
b29fe40
Merge branch 'main' of https://github.com/DevStranger/projekt_2025
olaadam Feb 5, 2025
14a262d
czytelne nazwy
olaadam Feb 5, 2025
0c910cd
widok rozmiaru notatki
olaadam Feb 5, 2025
2a1447f
Update dokumentacja_frontend.md
olaadam Feb 5, 2025
432fc3f
Update dokumentacja_backend.md
olaadam Feb 5, 2025
e7e8dc5
Create LICENSE
DevStranger Feb 6, 2025
820ca48
Update and rename LICENSE to LICENSE.md
DevStranger Feb 6, 2025
374543b
Create bezpieczeństwo.md
DevStranger Feb 6, 2025
5ca8ead
Update bezpieczeństwo.md bandit
DevStranger Feb 6, 2025
c59c6dd
Update bezpieczeństwo.md uzupełnienie analizy
DevStranger Feb 6, 2025
f56580d
Update README.md stopka
DevStranger Feb 6, 2025
a00c52d
Update LICENSE.md stopka
DevStranger Feb 6, 2025
4a84358
Update SECURITY.md stopka
DevStranger Feb 6, 2025
f9c00bb
Update api_endpoints.md stopka
DevStranger Feb 6, 2025
210f2c2
Update api_endpoints.md stopka
DevStranger Feb 6, 2025
8d03351
Update dokumentacja_backend.md stopka
DevStranger Feb 6, 2025
2c7b913
Update dokumentacja_frontend.md stopka
DevStranger Feb 6, 2025
39a5a88
Update dokumentacja_inżynierii_wymagań.md stopka
DevStranger Feb 6, 2025
6dbf05e
Update uruchamianie_aplikacji.md stopka
DevStranger Feb 6, 2025
2cf8d85
Update założenia_projektowe.md stopka
DevStranger Feb 6, 2025
16f7a37
Update bezpieczeństwo.md stopka
DevStranger Feb 6, 2025
47686e5
Update testy_funkcjonalne.md stopka
DevStranger Feb 6, 2025
78a697a
Update testy_niefunkcjonalne.md stopka
DevStranger Feb 6, 2025
443f2cc
Update test_spotkanie_zdalne.md stopka
DevStranger Feb 6, 2025
a75944f
Update note.py brakujący token
DevStranger Feb 6, 2025
5bed23f
Update testy_funkcjonalne.md drobne poprawki
DevStranger Feb 6, 2025
342b5bc
Update dokumentacja_frontend.md drobne poprawki
DevStranger Feb 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .env
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@

TEAMS_TENANT_ID = "40ad34a2-4df4-499f-a628-c865a29a7782"
TEAMS_TENANT_ID = "common"
TEAMS_CLIENT_ID = "4aa51599-98de-4a0a-8006-6939d24a18f4"
TEAMS_CLIENT_SECRET = "T5l8Q~_mmVp_.qHDlRkUKenBCELcceLYPFnDUcGF"
TEAMS_REDIRECT_URI = "https://login.microsoftonline.com/common/oauth2/nativeclient"
TEAMS_CLIENT_SECRET = "3DG8Q~8S7YU3sdpe0u0EF-BUTBCkNZIm_Rkw6bf8"
TEAMS_REDIRECT_URI = "http://localhost:5000/teams/callback"
TEAMS_CLIENT_VALUE = "3DG8Q~8S7YU3sdpe0u0EF-BUTBCkNZIm_Rkw6bf8"

ZOOM_CLIENT_ID="FA1BsrIaTHyB5zmz2hukmg"
ZOOM_CLIENT_SECRET="dpQeeLxZBAqFFaEpevt2WmAv1J81jtmJ"
Expand All @@ -12,4 +13,8 @@ ZOOM_REDIRECT_URI="http://localhost:5000/zoom/callback"
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
EMAIL_USERNAME=jfurtak03@gmail.com
EMAIL_PASSWORD=blmr hpes ktzy wnti
EMAIL_PASSWORD=blmr hpes ktzy wnti

GOOGLE_CLIENT_ID = "907999041253-2eqttdeuvd1inb1oh6a81vptdk1sh9ao.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET = "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"
GOOGLE_REDIRECT_URI = "http://localhost:5000/google-calendar/callback"
87 changes: 87 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
## NOTICE

This code was developed by the **Girls Inc.** team, consisting of:

- **Aleksandra Adamiak**
- **Maja Chlipała**
- **Joanna Furtak**
- **Julia Mikrut**

as part of a final project for the *Software Engineering* course.

If you use this code in academic work, please ensure proper credit is given to the authors.

---

# Apache License

Copyright 2025 Girls Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


---

# Apache License 2.0

**Version 2.0, January 2004**
[http://www.apache.org/licenses/](http://www.apache.org/licenses/)

## TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

### 1. Definitions.

- **"License"** shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
- **"Licensor"** shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
- **"Legal Entity"** shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity.
- **"You" (or "Your")** shall mean an individual or Legal Entity exercising permissions granted by this License.
- **"Source" form** shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
- **"Object" form** shall mean any form resulting from mechanical transformation or translation of a Source form.
- **"Work"** shall mean the work of authorship, whether in Source or Object form, made available under the License.
- **"Derivative Works"** shall mean any work based on (or derived from) the Work.
- **"Contribution"** shall mean any work of authorship submitted to Licensor for inclusion in the Work.
- **"Contributor"** shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received.

### 2. Grant of Copyright License.
Each Contributor grants You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

### 3. Grant of Patent License.
Each Contributor grants You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to use the Work.

### 4. Redistribution.
You may reproduce and distribute copies of the Work under the following conditions:

- You must give any other recipients of the Work a copy of this License.
- You must cause any modified files to carry prominent notices stating that You changed the files.
- You must retain all copyright, patent, trademark, and attribution notices from the Source form of the Work.
- If the Work includes a "NOTICE" text file, then any Derivative Works that You distribute must include a readable copy of those notices.

### 5. Submission of Contributions.
Unless stated otherwise, any Contribution submitted for inclusion in the Work shall be under the terms of this License.

### 6. Trademarks.
This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor.

### 7. Disclaimer of Warranty.
The Work is provided "AS IS", without warranty of any kind, either express or implied.

### 8. Limitation of Liability.
In no event shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages.

### 9. Accepting Warranty or Additional Liability.
You may offer and charge a fee for acceptance of support, warranty, indemnity, or other liability obligations, but only on Your sole responsibility.

---

| ![logoo](https://github.com/user-attachments/assets/4b34cc5f-8992-45bb-b354-4a69a66a5189) | **Zespół NoteWriter Girls Inc.** | **👑 Ola 🐝 Maja 🐝 Asia 🐝 Julka** |
|:--:|:--:|:--:|
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Aplikacja do Sporządzania Notatek ze Spotkań
# ![logoo](https://github.com/user-attachments/assets/77f90a59-717a-4f1c-99b4-b49435647273) Aplikacja do Sporządzania Notatek ze Spotkań


Aplikacja umożliwia nagrywanie spotkań, tworzenie z nich notatek oraz informowanie nieobecnych uczestników o ich przebiegu.

Expand Down Expand Up @@ -67,3 +68,7 @@ Na:
- W razie problemów z FFmpeg, sprawdź ścieżkę i upewnij się, że jest poprawna

---

| ![logoo](https://github.com/user-attachments/assets/4b34cc5f-8992-45bb-b354-4a69a66a5189) | **Zespół NoteWriter Girls Inc.** | **👑 Ola 🐝 Maja 🐝 Asia 🐝 Julka** |
|:--:|:--:|:--:|

64 changes: 64 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# 🛡️ Polityka Bezpieczeństwa (Security Policy)

## 📌 Wprowadzenie

Dziękujemy za zainteresowanie bezpieczeństwem naszego projektu **NoteWriter**. Bezpieczeństwo użytkowników oraz ich danych jest dla nas priorytetem.
Prosimy o przestrzeganie poniższych zasad i zgłaszanie wszelkich problemów związanych z bezpieczeństwem.

---

## 🔍 Zgłaszanie problemów z bezpieczeństwem

Jeśli znalazłeś/aś podatność w naszym systemie, prosimy o niepubliczne zgłoszenie problemu. Możesz to zrobić poprzez:

- **E-mail:** majachlipala@student.agh.edu.pl
- **GitHub Issues** *(tylko dla publicznych zgłoszeń związanych z ogólną konfiguracją bezpieczeństwa)*
- **Slack (kanał #girls_group)** *(dla członków zespołu deweloperskiego)*

**Nie publikuj szczegółów podatności publicznie, dopóki nie zostanie ona naprawiona!**

---

## 🔄 Polityka aktualizacji

- **Aktualizacje zabezpieczeń** będą publikowane co **35 dni** lub natychmiast w przypadku wykrycia krytycznych podatności
- **Komponenty zewnętrzne** (np. biblioteki) są regularnie skanowane pod kątem znanych podatności
- **Testy penetracyjne** są przeprowadzane przed każdą nową, dużą wersją aplikacji

---

## 🔑 Najlepsze praktyki bezpieczeństwa

Aby zapewnić bezpieczeństwo aplikacji i danych użytkowników, stosujemy następujące praktyki:

- **Szyfrowanie danych** w bazie danych (AES-256) oraz podczas transmisji (TLS 1.3)
- **Autoryzacja i uwierzytelnianie** użytkowników oparte na OAuth 2.0 i JWT
- **Minimalizacja uprawnień** – dostęp do danych jest ograniczony do niezbędnego minimum
- **Rejestrowanie i monitorowanie** prób nieautoryzowanego dostępu do systemu

---

## 📝 Zakres odpowiedzialności

- **Zespół NoteWriter Girls Inc.** w żadnym przypadku NIE jest odpowiedzialny za ochronę danych użytkowników i aplikacji
- **Użytkownicy** są zobowiązani do stosowania bezpiecznych haseł i ochrony swoich kont zewnętrznych (Google, MS Teams, Zoom)

---

## 📅 Kontakt i wsparcie

Jeśli masz pytania dotyczące polityki bezpieczeństwa, skontaktuj się z nami:

📧 **majachlipala@student.agh.edu.pl**
🌐 **[Maja Chlipała via UPEL](https://upel.agh.edu.pl/my/)**

Pytania dotyczące przekazywania notatek po spotkaniach drogą mailową proszę kierować do:

📧 **jfurtak03@gmail.com**
🌐 **[Joanna Furtak via UPEL](https://upel.agh.edu.pl/my/)**

Dziękujemy za dbanie o bezpieczeństwo naszej aplikacji! 🚀


| ![logoo](https://github.com/user-attachments/assets/4b34cc5f-8992-45bb-b354-4a69a66a5189) | **Zespół NoteWriter Girls Inc.** | **👑 Ola 🐝 Maja 🐝 Asia 🐝 Julka** |
|:--:|:--:|:--:|
8 changes: 1 addition & 7 deletions apka/app/backend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# Inicjalizacja SQLAlchemy (jedna, wspólna instancja)
db = SQLAlchemy()

UPLOAD_FOLDER = 'uploads'
Expand All @@ -11,29 +10,24 @@ def create_app() -> Flask:
app = Flask(__name__, static_folder="../frontend/static", template_folder="../frontend/templates")
app.secret_key = "secret_key"

# Upewnij się, że mamy folder "instance" (jeśli nie istnieje, to go twórz)
instance_folder = os.path.join(os.getcwd(), 'instance')
if not os.path.exists(instance_folder):
os.makedirs(instance_folder)

# Konfiguracja ścieżki do pliku bazy w folderze instance
database_path = os.path.join(instance_folder, 'database.db')
app.config['SQLALCHEMY_DATABASE_URI'] = f"sqlite:///{database_path}"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

# Inicjalizacja SQLAlchemy z aplikacją Flask
db.init_app(app)

with app.app_context():
# Importujemy modele PRZED wywołaniem create_all()
from .models import Email, Note

print("Sprawdzam i tworzę tabele w bazie (o ile ich brak)...")
db.create_all() # Teraz SQLAlchemy zna klasy Email, Note
db.create_all()
print("Gotowe!")

# Rejestrowanie blueprintu
from .routes import main
app.register_blueprint(main)

Expand Down
Binary file modified apka/app/backend/__pycache__/__init__.cpython-311.pyc
Binary file not shown.
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/models.cpython-311.pyc
Binary file not shown.
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/note.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/note.cpython-312.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/recording.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/routes.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/screenshot.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/summary.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/teams_integration.cpython-311.pyc
Binary file not shown.
Binary file modified apka/app/backend/__pycache__/zoom_integration.cpython-311.pyc
Binary file not shown.
6 changes: 3 additions & 3 deletions apka/app/backend/google_calendar_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@

load_dotenv()

GOOGLE_CLIENT_ID = "907999041253-2eqttdeuvd1inb1oh6a81vptdk1sh9ao.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET = "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"
GOOGLE_REDIRECT_URI = "http://localhost:5000/google-calendar/callback"
GOOGLE_CLIENT_ID = os.getenv("GOOGLE_CLIENT_ID")
GOOGLE_CLIENT_SECRET = os.getenv("GOOGLE_CLIENT_SECRET")
GOOGLE_REDIRECT_URI = os.getenv("GOOGLE_REDIRECT_URI")

SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]

Expand Down
87 changes: 0 additions & 87 deletions apka/app/backend/ms_calendar_integration.py

This file was deleted.

17 changes: 11 additions & 6 deletions apka/app/backend/note.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from .summary import generate_summary

# Inicjalizacja modelu Whisper
token = ""
token = "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"
model = load_model("base")


Expand Down Expand Up @@ -73,7 +73,6 @@ def combine_transcription_with_diarization(transcription_segments, diarization):
speaker_durations = defaultdict(float)
speaker_word_counts = defaultdict(int)
current_speaker = None
speaker_transcriptions = defaultdict(list)

for segment in transcription_segments:
start_time, end_time, text = segment['start'], segment['end'], segment['text']
Expand All @@ -90,13 +89,19 @@ def combine_transcription_with_diarization(transcription_segments, diarization):

speaker_durations[speaker] += (end_time - start_time)
speaker_word_counts[speaker] += word_count
speaker_transcriptions[speaker].append(text)

for speaker, sentences in speaker_transcriptions.items():
diarized_text.append(f"{speaker}:\n{' '.join(sentences)}")
# Jeżeli zmienił się mówca, dodajemy jego identyfikator
if speaker != current_speaker:
diarized_text.append(f"\n{speaker}:")
current_speaker = speaker

diarized_text.append(f" {text}")

# Tworzenie końcowego tekstu
formatted_transcription = "".join(diarized_text)
speaker_speeds = {spk: speaker_word_counts[spk] / speaker_durations[spk] for spk in speaker_durations}
return "\n".join(diarized_text), speaker_durations, speaker_speeds

return formatted_transcription, speaker_durations, speaker_speeds


def process_audio_and_save_transcription(audio_folder, docx_folder, screenshots_folder):
Expand Down
Loading