All Projects → iiuni → projektzapisy

iiuni / projektzapisy

Licence: other
System Zapisów na zajęcia w Instytucie Informatyki Uniwersytetu Wrocławskiego

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
Vue
7211 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Jinja
831 projects

Projects that are alternatives of or similar to projektzapisy

Tum.sexy
A website providing links, redirects and tools related to the Technical University Munich 💃📚
Stars: ✭ 126 (+384.62%)
Mutual labels:  university
Openlib.cs
📚 A Collection of Free & Open Resources for University Coursework in Computer Science.
Stars: ✭ 198 (+661.54%)
Mutual labels:  university
muesli
Mathematisches Übungsgruppen- und Scheinlisten-Interface
Stars: ✭ 26 (+0%)
Mutual labels:  university
Edx Dl
A simple tool to download video lectures from edx.org (and other openedx sites)
Stars: ✭ 1,769 (+6703.85%)
Mutual labels:  university
Manifold
Transforming scholarly publications into living digital works.
Stars: ✭ 163 (+526.92%)
Mutual labels:  university
Uportal
Enterprise open source portal built by and for the higher education community.
Stars: ✭ 221 (+750%)
Mutual labels:  university
Ni Pyt
Materiály k předmětu NI-PYT na FIT ČVUT
Stars: ✭ 112 (+330.77%)
Mutual labels:  university
beamer-themes
Latex beamer themes for presentations
Stars: ✭ 48 (+84.62%)
Mutual labels:  university
Ounotes
An Application built for students to access Notes , Question Papers , Syllabus and Resources for all Subjects of O.U (Osmania University) 📘👨‍🎓
Stars: ✭ 173 (+565.38%)
Mutual labels:  university
lectures-all
Central repository for all lectures on deep learning at UPC ETSETB TelecomBCN.
Stars: ✭ 46 (+76.92%)
Mutual labels:  university
Crawler China Mainland Universities
中国大陆大学列表爬虫
Stars: ✭ 143 (+450%)
Mutual labels:  university
Icmc Usp
"If You're Going Through Hell, Keep Going" - Winston Churchill 🐢 🐢 🐢
Stars: ✭ 156 (+500%)
Mutual labels:  university
Openct Android
open class table for android
Stars: ✭ 234 (+800%)
Mutual labels:  university
Hagenbergthesis
Hagenberg LaTeX Thesis Template
Stars: ✭ 130 (+400%)
Mutual labels:  university
university-cs-resources
A curated list of University CS Resources
Stars: ✭ 64 (+146.15%)
Mutual labels:  university
Studijne Materialy Fiit
Repozitar pre INFO a PKSS odbory
Stars: ✭ 117 (+350%)
Mutual labels:  university
Cs Univ Wiki
컴공생을 위한 대학 생활 가이드라인
Stars: ✭ 202 (+676.92%)
Mutual labels:  university
PlanningSup
Planning universitaire réalisé en Nuxt.js
Stars: ✭ 16 (-38.46%)
Mutual labels:  university
AndroidOMRHelper
An android application for validating images of OMR sheets before they are sent for processing.
Stars: ✭ 38 (+46.15%)
Mutual labels:  university
Whu Thesis
📝 武汉大学毕业论文 LaTeX 模版 2021
Stars: ✭ 232 (+792.31%)
Mutual labels:  university

System Zapisów Instytutu Informatyki UWr

System do obsługi cyklu dydaktycznego w Instytucie Informatyki Uniwersystetu Wrocławskiego. Za pomocą tego systemu: Nauczyciele tworzą swoje propozycje nowych przedmiotów; Studenci kształtują ofertę dydaktyczną poprzez głosowanie na te propozycje; Dyrekcja Instytutu przydziela zajęcia prowadzącym; Studenci zapisują się na zajęcia; W końcu studenci oceniają swoich nauczycieli w anonimowych ankietach. System zarządza też tematami prac dyplomowych i pozwala studentom je rezerwować.

Uruchamianie

Do postawienia developerskiej wersji systemu zapisów musimy mieć zainstalowanego Vagranta oraz Virtualboxa. Klonujemy niniejsze repozytorium na nasz komputer i odpalamy z niego polecenie vagrant up. Na naszym komputerze zostanie skonfigurowana maszyna wirtualna z uruchomionym testowym serwerem, który można odwiedzić pod adresem 0.0.0.0:8000. Folder projektzapisy na naszym komputerze jest współdzielony z maszyną wirtualną (folder /vagrant), więc serwer łapie na żywo wszystkie zmiany w robione przez nas w kodzie. Więcej informacji o maszynie developerskiej można przeczytać w instrukcji.

Jeżeli zamierzasz zajmować się frontendem, warto zapoznać się też z opisem systemu plików statycznych.

Architektura systemu

System Zapisów jest podzielony na moduły (zwane aplikacjami). Każda aplikacja definiuje swoje własne typy danych (modele), którym odpowiadają automatycznie obsługiwane tabele w bazie danych. Każda aplikacja dba o swoje własne ścieżki (URL-e) i implementuje funkcje odpowiadające na zapytania HTTP (zwane widokami). Powiązania między aplikacjami są realizowane poprzez importowanie kodu z jednego modułu do drugiego oraz przez klucze obce w bazie danych. Zwięzły opis wszystkich aplikacji w naszym systemie tutaj.

Zmiany w schemacie bazy danych

Każda zmiana w modelach musi zostać odzwierciedlona w schemacie bazy danych, co Django rozwiązuje migracjami — małymi skryptami w Pythonie, które mówią, jak ma się zmienić schemat bazy danych. Migracje można automatycznie wygenerować poleceniem python zapisy/manage.py makemigrations (w maszynie wirtualnej), ale czasem trzeba je ręcznie przerobić, jeśli zmiana w modelach wymaga transformacji danych.

Maszyna produkcyjna

Proces instalacji i konfiguracji maszyny produkcyjnej jest mocno zautomatyzowany dzięki narzędziu Ansible. Instrukcje w katalogu infra/.

Zespół

Zespół Systemu Zapisów tworzą w każdym semestrze studenci uczęszczający na przedmiot Rozwój Systemu Zapisów. Lider projektu jest zarazem prowadzącym przedmiot. W naszej pracy używamy następujących narzędzi:

  • Slack — nasz główny komunikator.
  • Rollbar — raportuje o błędach (wyjątkach) pojawiających się na produkcji.
  • Travis CI — testowanie kodu.
  • New Relic — monitorowanie wydajności serwera.

Schemat pracy

  1. Gdy zaczynamy pracować nad jakimś zadaniem, tworzymy gałąź, która odgałęzia się od master-dev. W swojej własnej gałęzi możemy przepisywać historię, szczególnie jeśli ma nam to pomóc zaktualizować się w stosunku do master-dev.
  2. Po ukończeniu tworzymy Pull Requesta z bazową gałęzią master-dev. Zaznaczamy lidera projektu do code-review. PR musi być ładnie i jasno opisany — opis ten może w przyszłości pomóc komuś zrozumieć intencje stojące za zmianą w kodzie.
  3. Proces code-review, dyskusji i nanoszenia poprawek zazwyczaj składa się z więcej niż jednego etapu. Należy na niego zarezerwować z grubsza tyle czasu, co na przygotowanie PR-a.
  4. Zaakceptowane Pull Requesty będą scalane przez lidera projektu za pomocą git merge --squash. Nie musimy się zatem wstydzić rewizji (commitów) w naszej gałęzi.
  5. Co jakiś czas (około dwóch tygodni-miesiąca) robiony jest deploy na produkcję. Gałąź master przechowuje wersję produkcyjną.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].