-
Notifications
You must be signed in to change notification settings - Fork 5
4. Understanding ELVIS Database
This section was introduced in SIMSSA Tutorial Week on May 4th, 2018. Slides are available here.
ELVIS Database is a website developed by Distributed Digital Music Archives and Libraries Lab DDMAL to search for symbolic music.
As a Django application, the website contains thousands of media files (symbolic music data, such as MEI, MIDI, MusicXML and Kern), which are linked with the corresponding piece and/or movement. Additionally, each piece/movement has a series of metadata, such as composer, date of composition, genres, collection, place of origin, etc.
ELVIS Database has a series of key functions, such as:
- Registration
- Login/logout
- Search (General search with the name of composer/piece/movement, or advanced search)
- Download and upload symbolic music
- Personalised cart for downloading symbolic music in batch
- ...
To understand how ELVIS Database implemented these functions and modified them can be overwhelming, especially for someone who is relatively new to the Web development. Therefore, this page is written as a detailed tutorial to understand ELVIS Database's infrastructure for future maintenance and development.
This tutorial contains two parts: The first part introduces the basic mechanism of a website, and a simple blog website will be introduced as an example, where each component and the interaction among the components will be explained in detail. After understanding the basics, the second part will introduce ELVIS Database as a whole, and explain how the advanced functions (e.g., serving a huge number of media files, search and personalized cart, etc.) work.
In Part I, a simple blog website will be used to explain the core elements of Django, where you can log in, log out, submit forms (posts), comments, drafts and so on. In the following sub-page, starting with 4.1 Start With A Single Click, I will explain each component of the website. The source code of the blog website is stored on dev_feature_jsymbolic
branch, in blog_website_to_understand_Django
folder.
(1) git clone
the whole project.
(2) Create a virtual environment under the project folder blog_website_to_understand_Django
.
(3) Run pip install -r requirements.txt
to install all the required packages (NOTE: Django version must be greater than 2.0
!).
(4) Run python manage.py runserver
to run the project.
If the guidelines above do not make sense to you, you might need to start Django tutorial from the beginning until you understand the content of this file.
Note: To log in, use USERNAME: debug
and PASSWORD:debugdebug
to log in. If possible, I will develop a function for the users to register themselves as well.
To begin with the tutorial, please follow 4.1 Start With A Single Click, and the subsequence pages.