Difference between revisions of "Team:USTC-Software/Implementation"

Line 25: Line 25:
 
                         <div class="header">Implementation</div>
 
                         <div class="header">Implementation</div>
 
                         <div class="menu">
 
                         <div class="menu">
                             <a class="item active leftnav-item" href="#Server Part">Server Part</a>
+
                             <b>Server Part</b>
 
                             <a class="item leftnav-item" href="#Bricks Data">About the Bricks Data</a>
 
                             <a class="item leftnav-item" href="#Bricks Data">About the Bricks Data</a>
 
<a class="item leftnav-item" href="#Data Organizing">About Data Organizing</a>
 
<a class="item leftnav-item" href="#Data Organizing">About Data Organizing</a>
 
<a class="item leftnav-item" href="#Search Engine">About Search Engine</a>
 
<a class="item leftnav-item" href="#Search Engine">About Search Engine</a>
<a class="item leftnav-item" href="#Frontend Part">Frontend Part</a>
+
<b>Frontend Part</b>
 
<a class="item leftnav-item" href="#UI">About UI</a>
 
<a class="item leftnav-item" href="#UI">About UI</a>
 
<a class="item leftnav-item" href="#Sortable">About Sortable</a>
 
<a class="item leftnav-item" href="#Sortable">About Sortable</a>

Revision as of 06:38, 15 October 2018

Implementation

Server Part

The server of Bioeditor is written in Python 3.6, which is a flexible and cross-platform language and can reduce the learning costs we develop. Django allows fast prototyping and large-scale deployment, that's why we choose Django to be the basic framework.

About the Bricks Data

About Data Organizing

The initial data will be imported into a separate database.Bioeditor will link to it by creating virtual tables using MySQL's database view technology.Using database views may lower the speed of querying, but it also has a lot of benefits. On the one hand,it's easy to get started.Users don't need to care about the complex structure behind. On the other hand,it's safety for beginners, users who use views can only access the result set they are allowed to query.

We followed last year's filtering of initial data to reduce the impact of unwanted bricks on search efficiency.We used natural language processing during the search process. After the language model is established, the extraction of text keywords is realized by processing such as statistical features such as TF and IDF. So that our search results are more in line with the needs of users. At the same time, we have made the search conditions more diversified.Users can find the bricks they need more conveniently under more query conditions. We will recalculate the ranking weights at regular intervals. The reason for not evaluating them in real time is that the task may update the whole table and become time-consuming.

Frontend Part

In most templating systems,any changes that the user makes to the view are not reflected in the model. This means that the developer has to write code that constantly synchronize the view with the model and the model with the view. So we choose the Angular template, which works differently. Any changes to the view are immediately reflected in the model, and any changes in the model are propagated to the view.You can think of the view as simply an instant projection of your model.

About UI

We choose NG-ZORRA as our basic framework. NG-ZORRA is a UI framework developed by Alibaba Group based on Angular template.NG-ZORRA provides us with multiple elegant components and comfortable visual experience. In addition,we also added many wonderful customized conponents and styles to improve the user experience.

About Sortable

When researchs writes an academic report,the scholae could click and drag the element of experimental process from the list to a new location in the report.Obviously,It is convenient for them to write experimental reports.