Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a9164f5
feat: add instrument resource metadata with restricted Google Drive l…
PouyaMohseni Sep 11, 2025
9537bf4
docs: add The World Encyclopedia of Musical Instruments to references
PouyaMohseni Jan 9, 2026
e035b84
feat: add 12 noto sans families & self-hosted Gentium font
yinanazhou Feb 9, 2026
1643afe
feat: add instrument CSV dump command
kunfang98927 Feb 13, 2026
b802054
Update dump_instrument_to_csv.py
kunfang98927 Feb 13, 2026
004d70b
Merge pull request #519 from DDMAL/dump-instrument-to-csv
kunfang98927 Feb 13, 2026
96ec45f
feat: add wiki guideline link to instrument name form
clarelinzx Feb 13, 2026
b10cdb4
feat: preserve original image formats instead of converting to PNG
yinanazhou Feb 16, 2026
f8efc74
chore(deps): upgrade black to 26.1.0
yinanazhou Feb 16, 2026
bebf88e
fix: add rate limiting and retry logic to download_imgs
yinanazhou Feb 16, 2026
569b403
refactor: download imgs to MEDIA_ROOT
yinanazhou Feb 17, 2026
fd7074d
Merge pull request #515 from DDMAL/font-fix
yinanazhou Feb 18, 2026
4ce0864
Merge pull request #522 from DDMAL/img-format
yinanazhou Feb 19, 2026
2dd3130
Merge pull request #520 from DDMAL/language-guideline-link
zih-syuan Feb 20, 2026
6cd05fa
Merge pull request #382 from DDMAL/add-books
PouyaMohseni Feb 21, 2026
a9683be
fix: update nginx build context and add production Dockerfile
yinanazhou Feb 23, 2026
45381c2
Merge pull request #525 from DDMAL/font-fix
yinanazhou Feb 26, 2026
63546ac
feat: add normalized version of language autonyms for input matching
PouyaMohseni Jan 22, 2026
ff11936
fix: validate HBS format when adding an instrument
PouyaMohseni Mar 11, 2026
3844886
Merge pull request #508 from DDMAL/lang-norm
PouyaMohseni Mar 11, 2026
55ef923
Merge pull request #528 from DDMAL/fix-hbs-validation
PouyaMohseni Mar 12, 2026
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
51 changes: 51 additions & 0 deletions Instrument resources/resources_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"books": [
{
"title": "The Encyclopedia of Musical Instruments of Iran: Percussion, Bowed, and String Instruments",
"volume": 1,
"author": "Mohammad Reza Darvishi",
"publisher": "Mahoor Institute of Culture and Arts",
"year": 2001,
"language": "Persian",
"pages": 598,
"isbn": "9789646409453",
"link": "https://mahoor.com/en/book/806-the-encyclopaedia-of-musical-instruments-of-iran-1",
"scan_location": "https://drive.google.com/file/d/1Qzq-I41Q5zZ-_xclgN34MXaP5xDKDfiU/view?usp=sharing"
},
{
"title": "The Encyclopedia of Musical Instruments of Iran: Membranophones and Idiophones",
"volume": 2,
"author": "Mohammad Reza Darvishi",
"publisher": "Mahoor Institute of Culture and Arts",
"year": 2013,
"language": "Persian",
"pages": 708,
"isbn": "9789648772036",
"link": "https://www.mahoor.com/en/book/807-the-encyclopaedia-of-musical-instruments-of-iran-2",
"scan_location": "https://drive.google.com/file/d/1IHYjrcqi6lC0GmMdX4J0FVc0cZoVkmN9/view?usp=sharing"
},
{
"title": "The Encyclopedia of Musical Instruments of Iran: Woodwinds",
"volume": 3,
"author": "Mohammad Reza Darvishi",
"publisher": "Mahoor Institute of Culture and Arts",
"year": 2023,
"language": "Persian",
"pages": 324,
"isbn": "9786229899762",
"link": "https://www.mahoor.com/en/book/20823-The%20Encyclopaedia%20of%20Musical%20Instruments%20of%20Iran%203",
"scan_location": "https://drive.google.com/file/d/1OQ19DuEoS8KHIcgo26knlqNYL5BEZnev/view?usp=sharing"
},
{
"title": "The World Encyclopedia of Musical Instruments",
"author": "Hassan Zandbaf",
"publisher": "Rawzanah",
"year": 1997,
"language": "Persian",
"pages": 311,
"isbn": "9646176232",
"link": "https://web.archive.org/web/20180920195542/http://www.ketab.ir/bookview.aspx?bookid=177683",
"scan_location": "https://drive.google.com/file/d/1v0JXAKZLv7EW56T3WYgZSjFbteAoVr1n/view?usp=sharing"
}
]
}
5 changes: 3 additions & 2 deletions docker-compose-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,16 @@ services:
restart: unless-stopped

nginx:
build: ./nginx
build:
context: .
dockerfile: ./nginx/Dockerfile.prod
container_name: vim-nginx
restart: unless-stopped
environment:
- HOST_NAME=${HOST_NAME}
ports:
- "8000:80"
volumes:
- ./web-app/frontend/assets/:/virtual-instrument-museum/frontend/assets/
- vim-static:/virtual-instrument-museum/static
- vim-media:/virtual-instrument-museum/media
depends_on:
Expand Down
2 changes: 1 addition & 1 deletion nginx/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
FROM nginx:1.25.2
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./vim.conf.template /etc/nginx/templates/vim.conf.template
COPY ./vim.conf.template /etc/nginx/templates/vim.conf.template
14 changes: 14 additions & 0 deletions nginx/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Production nginx: includes compiled frontend assets in the image
# (Dev uses bind mounts instead, see docker-compose.yml)

FROM node:20-slim AS frontend-builder
COPY ./web-app/frontend/ /frontend/
WORKDIR /frontend
RUN npm install && npm run sass:build

FROM nginx:1.25.2
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
COPY ./nginx/vim.conf.template /etc/nginx/templates/vim.conf.template
# Copy static assets (images, fonts, etc.) and compiled CSS
COPY ./web-app/frontend/assets/ /virtual-instrument-museum/frontend/assets/
COPY --from=frontend-builder /frontend/assets/css /virtual-instrument-museum/frontend/assets/css
114 changes: 87 additions & 27 deletions poetry.lock

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

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ django-ratelimit = "^4.1.0"


[tool.poetry.group.dev.dependencies]
black = "^23.9.1"
black = "26.1.0"
mypy = "^1.5.1"
pylint = "^2.17.6"
types-requests = "^2.32.0.20240712"
Expand Down
Loading
Loading