Skip to content

Initial Design

Corrina Del Greco edited this page Feb 16, 2021 · 15 revisions

Initial design notes, work in progress

Design Flow Chart 2/16/2021:

Design Flow Chart

High level design:

  • The user inputs their research paper(s). The program requires it to be in LaTex with BibTex.
  • The program uses the BibTex to create a file in a language that Doxygen can handle, we've chosen C.
  • Doxygen generates the graph using the C code. Doxygen provides HTML for our GUI.
  • The user can modify and add fields. The program will rewrite the files that are used by Doxygen to regenerate the graph.

High level design expanded:

  • The user inputs their research paper(s). The program requires it to be in LaTex with BibTex.
  • The program uses the BibTex to create a file in a language that Doxygen can handle, we've chosen C.
    • BibTex resembles a dictionary (ie. author="Corrina"). This is extremely beneficial to us.
    • Doxygen cannot handle BibTex, however, so we convert it to C.
    • The C code won't be functional, it's just a way to speak to Doxgyen in a language it'll understand.
    • TODO describe structure of C file/methods
  • Doxygen generates the graph using the C code. Doxygen provides HTML for our GUI.
    • Graph nodes are paper names. Graph connections are the references to other papers.
    • A purely Doxygen-generated front end is initial. Later, the developers may make their own front-end.
  • The user can modify and add fields. The program will rewrite the files that are used by Doxygen to regenerate the graph.
    • Initially, this can be done by the user editing the files in a text editor. Later, we could create our own GUI with fillable forms.
    • For example, a new page opens for Paper A with a form to change existing fields like author or add new fields like summary.

Notes from meeting with Dr. Liu 1/28/2021:

  • All.bib header file
  • Common / all.bib, common_def.tex
  • Paper / paper1.tex, paper2.tex, ...
  • Graph / luis2021A.tex, sam2020.tex, tex, ...
  • Reduce paper1.tex to sam2020.tex
  • Single function for C file
  • Plain file structure instead of SQL database

Notes from meeting with Dr. Liu 2/2/2021:

  • GUI shows... (what is in the reduced/simplified LaTex file)
    • Title/author/affiliation
    • Abstract
    • Index terms
    • Most import contributions
    • Citation graph
  • You can use Doxygen to set how many layers deep the graph should go, a single layer is good enough
  • Answer to question "how should the graph nodes nodes (papers) be labeled? name?"
    • Liu2008, Chayat1997
    • Later, if possible, add paper title below that^
    • Later, if possible, label connections with purpose
  • A forms GUI is fancy, the user can modify feilds using a text editor for now.

SQL database idea (scratched for now):

  • Rather than rewriting the files, the original data from the files is stored in the database and further additions/modifications are done with SQL.
  • Attributes directly from paper (BibTex) are inserted into the database, immodifiable (boolean flag ie. Author = Corrina, author_editable = false)
  • The graph is not regenerated because the nodes are only paper names, which do not change.
  • Other information than that^ cannot be displayed using Doxygen HTML because we want to include manually entered data from the database. Requires more GUI work.
  • Click on a node of the graph (paper name) and it opens a sidebar (or other page) to display database information.
  • Manually added information goes into database, IS modifiable, does not need to be added to C code.
  • Possibly faster than plain file structure because no regeneration or rewriting is needed.

Other ideas/considerations:

  • Input sanitization on manually entered information
  • Authorization needed for users to modify
  • Noting who contributed what
  • Search bar, SQL query the db for a paper name

Clone this wiki locally