All Projects → xehartnort → BDExamenes

xehartnort / BDExamenes

Licence: GPL-3.0 license
Base de datos de exámenes de la ETSIIT

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to BDExamenes

Verdant Search
用python+fastapi实现的搜索引擎
Stars: ✭ 13 (-43.48%)
Mutual labels:  search-engine
searchbox-core
searchbox is a lightweight search framework built on redis
Stars: ✭ 22 (-4.35%)
Mutual labels:  search-engine
jina-meme-search
Meme search engine built with Jina neural search framework. Search with captions or image files to find matching memes.
Stars: ✭ 21 (-8.7%)
Mutual labels:  search-engine
devsearch
A web search engine built with Python which uses TF-IDF and PageRank to sort search results.
Stars: ✭ 52 (+126.09%)
Mutual labels:  search-engine
haro
Haro is a modern immutable DataStore
Stars: ✭ 24 (+4.35%)
Mutual labels:  search-engine
illuminsight
💡👀 Read EPUB books with built-in insights from wikis, definitions, translations, and Google.
Stars: ✭ 55 (+139.13%)
Mutual labels:  search-engine
seo-analyzer
The library for analyze a HTML file to show all of the SEO defects
Stars: ✭ 53 (+130.43%)
Mutual labels:  search-engine
gosearch
Web crawler and Search engine in Golang.
Stars: ✭ 19 (-17.39%)
Mutual labels:  search-engine
booksearch
A Simple Search Engine to help you find FREE Download Links to your Favourite Books
Stars: ✭ 48 (+108.7%)
Mutual labels:  search-engine
malwinx
Just a normal flask web app to understand win32api with code snippets and references.
Stars: ✭ 76 (+230.43%)
Mutual labels:  search-engine
maricutodb
PHP Flat File Database Manager
Stars: ✭ 23 (+0%)
Mutual labels:  search-engine
docker
Official docker for Manticore Search
Stars: ✭ 39 (+69.57%)
Mutual labels:  search-engine
GreasyFork-Scripts
该项目开源代码用于主流浏览器的油猴脚本,包含字体渲染脚本 Font Rendering.user.js, 搜索引擎跳转工具 Google & Baidu Switcher.user.js.
Stars: ✭ 260 (+1030.43%)
Mutual labels:  search-engine
minimal-search-engine
最小のサーチエンジン/PageRank/tf-idf
Stars: ✭ 18 (-21.74%)
Mutual labels:  search-engine
google-this
🔎 A simple yet powerful module to retrieve organic search results and much more from Google.
Stars: ✭ 88 (+282.61%)
Mutual labels:  search-engine
informatica-unlp
Repositorio con resolución de prácticas de las materias de las carreras apu, lic. en sistemas y lic. en informática de la Facultad de Informática, UNLP.
Stars: ✭ 17 (-26.09%)
Mutual labels:  informatica
qBit-plugins
Search plugins for qBittorrent
Stars: ✭ 40 (+73.91%)
Mutual labels:  search-engine
PeARS-orchard
This is the decentralised version of PeARS, the people's search engine, to be taken as Phase 1 of the fully distributed system.
Stars: ✭ 34 (+47.83%)
Mutual labels:  search-engine
odcrawler-frontend
A frontend for ODCrawler, an Open Directory search engine.
Stars: ✭ 20 (-13.04%)
Mutual labels:  search-engine
botanalyse
botsonar analyse open api
Stars: ✭ 19 (-17.39%)
Mutual labels:  search-engine

BD

BD - Estructuración lógica de la base de datos

Vamos al lío. Primero comencemos explicando el modelo relacional que sostiene al nivel conceptual de la base de datos, sí, estoy hablando del diagrama entidad-relación:

La entidad Documento representa a todos los exámenes guardados:

  • id_doc : cada archivo se identifica univocamente por su hash sha1.
  • nom_doc : el correspondiente nombre del examen almacenado.
  • ruta_doc : la correspondiente ruta al examen en la jungla de directorios.

La entidad Tag representa una etiqueta que clasifica un elemento de la entidad Documento:

  • nom_tag : es el nombre o identificativo único de cada etiqueta.
  • tipo_tag : categoría en la que se sitúa la etiqueta, se consideran 5: año, curso, asignatura, grado y otro.
  • preferencia : indica el uso de una etiqueta, a mayor preferencia, mayor uso de la etiqueta y por tanto más importancia tendrá en la clasificación.

La entidad DocTag representa en duplas la asociación de un Documento a un Tag y viceversa, añade también un nuevo atributo: comprobado.

En el nivel externo de la base de datos se encuentran las vistas examen. La primera es, en términos del álgebra relacional, la únion natural de la tabla Documento, la tabla DocTag y la tabla Tag.

BD - Implementación

El administrador de la base de datos es por simplicidad SQlite, en un futuro próximo se portará a MySQL. El código correspondiente a la creación de la base de datos se encuentra en el archivo createDB.py dentro de la carpeta dbtools.

BD - Estructura de la jungla de directorios

Cada archivo de examen se encuentra almacenado en las profundidades de la jungla de directorios atendiendo a los siguientes criterios: grado al que pertenece el examen, curso de la asignatura del examen, asignatura del examen y año del curso en el que se realiza el examen. En caso de no poder determinar el año o ser este anterior a 2011-2012, el valor de año es UNKN (de Unknown, desconocido) o ANTE (de Anterior al origen del mundo al año 1112).

Por ejemplo, si tenemos un examen del curso 1º, año 2013-2014, asignatura Héchizos y Pócimas del grado en Artes Oscuras y un tipo test de dicha asígnatura que no sabemos de que año es pero tienen hasta telarañas, sus rutas en la jungla sería:

  • Artes Oscuras/1/Héchizos y Pócimas/1314/examen
  • Artes Oscuras/1/Héchizos y Pócimas/UNKN/tipo_test

BD - Actualización

Una vez añadidos nuevos archivos a la jungla de directorios es suficiente con ejecutar el siguiente comando en la carpeta raiz del proyecto: make db. Este comando buscará y borrará automágicamente los archivos duplicados de la jungla de directorios, además de clasificar en la base de datos los nuevos archivos.

BD - Interfaz web

La lógica del servidor, esto es, código destinado a ejecutarse en el servidor durante la interacción de un usuario con la interfaz web está implementado en php y se encuentra en el directorio php. La lógica de la interfaz se encuentra repartida en dos directorios: css y js y los ficheros html. Para programar en CSS se ha empleado {less}, por lo que es necesario compilar el archivo css/style.less, por otra parte el código Javascript se minifica utilizando UglifyJS. Estas operaciones se llevan a cabo ejecutando make css y make js.

BD - Dependencias

Python:

PHP:

Javascript:

CSS:

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].