Repository navigation
Engineering Notebook: Aaron Van De Brook
Aaron Van De Brook edited this page Apr 27, 2021
·
19 revisions
- Made a PR to merge and merged the edit paper info branch into the main branch.
- Fixed a bug in the edit page where paper citations were not always showing up.
- Made a few style changes to make to reference page look a bit better with the text boxes
- Added button to update paper info in the reference info page
- Added keys (or tried) to the form tables so that it can be parsed on the back end
- Problems with key errors, not sure why. I think it's because there are two
forms on the web page:- It is because there are no
inputfields in the form for the server to parse - Need to change some of the html (mess with that tonight)
- Changed table entries to
textareas; also had to give the form anidsince there is more than one form on the page - New problem: return template rendered with new info; need to change the logic of the
/papers/newendpoint:- Need to parse information, store in database
- Template needs to be changed to populate fields from database entries instead of directly from the parsers
- Database schema needs to be changed a bit
- It is because there are no
- Added database functionalities into the reference info page
- Still need to mess with the parsers to speed up the response times
- Need to add some kind visual response to the edit page so the user knows they're are editing the page and that it can be edited
- Looking at Corrina's pull request
- Tried to get some work done search function and database integration
- Added manifest and setup files so that the project is easier to setup/install and run
- Setup so that running
pip install -e .automatically installs all project dependencies (note: these files need to be updated to reflect any new dependencies added as the project grows) -
pip list | grep -i citation-graph(Linux) andpip list | find "citation-graph"(Windows, I think; I haven't tested it) - Updated readme to reflect changes and to better explain how to set up the project, dependencies, and how to run
- PLEASE REVIEW MY PULL REQUEST, IT'S BEEN THERE SINCE THURSDAY
- Made some small changes (line breaks between input fields) to the input screen to make it more readable
- Removed plaintext server secret key from initialization file and moved all user configurable fields into a
config.pyfile which is ignored by git - Demo
- Set up server to convert papers into C, and run doxygen on them
- Current problem: when reading the doxygen files I get the error
codec cant decode byte 0x89 in position 0: invalid start byte
- Integrated web pages (from Luis and Sam) into the server
- Set up endpoints to handle new papers and searches from users
- Wrote a template to return with paper/bib data once the server processes the data
- New paper endpoint handles POST requests from the browser, saves the files entered, processes them, and returns the data back to the user in a readable/edittable format
- Last steps: integrate doxygen, add a way to access doxygen web pages, integrate database (might be pushed off to next sprint), add search functionality
- Also, ran into a weird bug in the bibtex parser when testing the forms; when the bibtexparser library was parsing the document it ran into errors because it could not decode the byte
0x92in utf-8. This is a 'smart quote' from windows, which doesn't exist in utf-8- Solved by switching the encoding/decoding scheme from
utf-8tocp1252(in retrospect, usingdos2unixmight have worked too, but using a different encoding scheme is probably a better idea)
- Solved by switching the encoding/decoding scheme from
- Fixed an issue in the Latex parser where it wasn't saving all citations
- Refactored server to make static resources easier to use (all contained in the
staticfolder now, use something like{{ url_for('static', filename='<file_or_path>') }}in templates to link the pages together easily - Set up blueprint to use for the request and response form pages
- Any more progress for the server is at a roadblock until the parser(s), webpages, and (possibly) database are complete or closer to a point where they can be tested with other modules
- Database will be useful for ensuring we're not having the parsers do extra work when they don't need to, improves efficiency and performance
- Database is really easy to implement and integrate with flask, but need info on which to use because the syntax and initialization processes for all of them are different
- Started refactoring server and setting up Jinja templates for form pages (input paper, paper info like references, authors, publication date, etc.)
- Refactor endpoint function to use
@after_this_requestfunction to (hopefully) make the responses faster or at the very least easier to read - Searched for fonts and messed around with linking external fonts in HTML documents as well as scripts
- Did some testing to make sure stylesheets linked correctly, turns out endpoints need to be set up for everything
- Set up endpoints and error handling for stylesheets, scripts, images, and favicon(s)
- Some browsers (Firefox) won't accept server responses if specific HTTP packet header properties are not set, so for all CSS documents the 'Content-Type' property is set to 'text/css' and for JS documents it is set to 'application/javascript'. These are also defined by standards which are referenced in the MDN documentation
- Should probably be setting response headers with the
@after_this_requestdecorator, so this will be kept in mind as I refactor the code
- Got a basic server started with flask, serves placeholder pages at the moment, but these can be easily replaced/added when the front-end starts to come together
- The index (home page), and 404 page are the only endpoints working at the moment
- Assembled a list resources and documentation for HTML, CSS, Python, and Flask (will update these more as we incorporate more things)
- Created and assigned tasks for sprint 2, started looking into flask as a means of setting up a back-end server for the system
- Finished the LaTeX parser (with the exception of the index terms). Grabs the abstract, citations, bibliographies, etc. from a LaTeX paper.
- Skipped flask and opted for just opening the generated doxygen html from a python script.
- Refining/creating code to grab important sections from the paper (have the abstract working so far, working on citations/contributions next).
- Started on manually generated graphs. Using example papers first to keep things simple and then expanding from there.
- Going to start messing with flask this weekend so we can have some semblance of a prototype for the demo.
- Finally created a system design (for the back-end at least). Still need to come up with ideas for the front end design.
- Thinking of using Flask for ease of use between front and back ends
- Created/cleaned up some code to give us a starting point on the parser modules
- Figured out some details for the LaTeX parser, starting writing some code to find important sections (e.g. Abstract, Citations, etc.)
- Need to convert to classes for modularity when using it in a 'back-end'
- Once the parsers are separated into classes, will starting working on creating the C-like functions for Doxygen to process, then front-end framework
- Got BibTeX parser 'working', wrote a few functions to grab paper information and convert them into C-like functions
- Uploaded some (or all) of the files that Liu emailed us
- Met with team in person to discuss initial design