├── .gitignore ├── .vscode └── launch.json ├── BlogPosts ├── BlogPosts.txt ├── Cramer-Smith-Update-Week-1-Spring.md ├── Cramer-Smith-Update-Week-1-Winter.md ├── Cramer-Smith-Update-Week-10-Fall.md ├── Cramer-Smith-Update-Week-10-Winter.md ├── Cramer-Smith-Update-Week-2-Spring.md ├── Cramer-Smith-Update-Week-2-Winter.md ├── Cramer-Smith-Update-Week-3-Fall.md ├── Cramer-Smith-Update-Week-3-Spring.md ├── Cramer-Smith-Update-Week-3-Winter.md ├── Cramer-Smith-Update-Week-4-Fall.md ├── Cramer-Smith-Update-Week-4-Spring.md ├── Cramer-Smith-Update-Week-4-Winter.md ├── Cramer-Smith-Update-Week-5-Fall.md ├── Cramer-Smith-Update-Week-5-Spring.md ├── Cramer-Smith-Update-Week-5-Winter.md ├── Cramer-Smith-Update-Week-6-Fall.md ├── Cramer-Smith-Update-Week-6-Spring.md ├── Cramer-Smith-Update-Week-6-Winter.md ├── Cramer-Smith-Update-Week-7-Fall.md ├── Cramer-Smith-Update-Week-7-Spring.md ├── Cramer-Smith-Update-Week-7-Winter.md ├── Cramer-Smith-Update-Week-8-Fall.md ├── Cramer-Smith-Update-Week-8-Winter.md ├── Cramer-Smith-Update-Week-9-Fall.md ├── Cramer-Smith-Update-Week-9-Winter.md ├── Eric-Winkler-Update-Week-1-Spring.md ├── Eric-Winkler-Update-Week-1-Winter.md ├── Eric-Winkler-Update-Week-10-Fall.md ├── Eric-Winkler-Update-Week-10-Winter.md ├── Eric-Winkler-Update-Week-2-Spring.md ├── Eric-Winkler-Update-Week-2-Winter.md ├── Eric-Winkler-Update-Week-3-Fall.md ├── Eric-Winkler-Update-Week-3-Spring.md ├── Eric-Winkler-Update-Week-3-Winter.md ├── Eric-Winkler-Update-Week-4-Fall.md ├── Eric-Winkler-Update-Week-4-Spring.md ├── Eric-Winkler-Update-Week-4-Winter.md ├── Eric-Winkler-Update-Week-5-Fall.md ├── Eric-Winkler-Update-Week-5-Spring.md ├── Eric-Winkler-Update-Week-5-Winter.md ├── Eric-Winkler-Update-Week-6-Fall.md ├── Eric-Winkler-Update-Week-6-Spring.md ├── Eric-Winkler-Update-Week-6-Winter.md ├── Eric-Winkler-Update-Week-7-Fall.md ├── Eric-Winkler-Update-Week-7-Spring.md ├── Eric-Winkler-Update-Week-7-Winter.md ├── Eric-Winkler-Update-Week-8-Fall.md ├── Eric-Winkler-Update-Week-8-Winter.md ├── Eric-Winkler-Update-Week-9-Fall.md ├── Eric-Winkler-Update-Week-9-Winter.md ├── Sam-LichLyter-Update-Week-1-Spring.md ├── Sam-LichLyter-Update-Week-10-Winter.md ├── Sam-LichLyter-Update-Week-3-Winter.md ├── Sam-LichLyter-Update-Week-5-Winter.md ├── Sam-LichLyter-Update-Week-7-Winter.md ├── Sam-LichLyter-Update-Week-8-Winter.md ├── Sam-LichLyter-Update-Week-9-Winter.md ├── Sam-Lichlyter-Update-Week-1-Winter.md ├── Sam-Lichlyter-Update-Week-10-Fall.md ├── Sam-Lichlyter-Update-Week-2-Spring.md ├── Sam-Lichlyter-Update-Week-2-Winter.md ├── Sam-Lichlyter-Update-Week-3-Fall.md ├── Sam-Lichlyter-Update-Week-3-Spring.md ├── Sam-Lichlyter-Update-Week-4-Fall.md ├── Sam-Lichlyter-Update-Week-4-Spring.md ├── Sam-Lichlyter-Update-Week-4-Winter.md ├── Sam-Lichlyter-Update-Week-5-Fall.md ├── Sam-Lichlyter-Update-Week-5-Spring.md ├── Sam-Lichlyter-Update-Week-6-Fall.md ├── Sam-Lichlyter-Update-Week-6-Spring.md ├── Sam-Lichlyter-Update-Week-6-Winter.md ├── Sam-Lichlyter-Update-Week-7-Fall.md ├── Sam-Lichlyter-Update-Week-7-Spring.md ├── Sam-Lichlyter-Update-Week-8-Fall.md ├── Sam-Lichlyter-Update-Week-9-Fall.md ├── Zach-Schneider-Update-Week-1-Spring.md ├── Zach-Schneider-Update-Week-1-Winter.md ├── Zach-Schneider-Update-Week-10-Fall.md ├── Zach-Schneider-Update-Week-10-Winter.md ├── Zach-Schneider-Update-Week-2-Spring.md ├── Zach-Schneider-Update-Week-2-Winter.md ├── Zach-Schneider-Update-Week-3-Fall.md ├── Zach-Schneider-Update-Week-3-Spring.md ├── Zach-Schneider-Update-Week-3-Winter.md ├── Zach-Schneider-Update-Week-4-Fall.md ├── Zach-Schneider-Update-Week-4-Spring.md ├── Zach-Schneider-Update-Week-4-Winter.md ├── Zach-Schneider-Update-Week-5-Fall.md ├── Zach-Schneider-Update-Week-5-Spring.md ├── Zach-Schneider-Update-Week-5-Winter.md ├── Zach-Schneider-Update-Week-6-Fall.md ├── Zach-Schneider-Update-Week-6-Spring.md ├── Zach-Schneider-Update-Week-6-Winter.md ├── Zach-Schneider-Update-Week-7-Fall.md ├── Zach-Schneider-Update-Week-7-Spring.md ├── Zach-Schneider-Update-Week-7-Winter.md ├── Zach-Schneider-Update-Week-8-Fall.md ├── Zach-Schneider-Update-Week-8-Winter.md ├── Zach-Schneider-Update-Week-9-Fall.md ├── Zach-Schneider-Update-Week-9-Winter.md └── parsewiki.py ├── DataStruct.json ├── DataStructmockUp.txt ├── DesignDocument ├── IEEEtran.bst ├── IEEEtran.cls ├── design.bib ├── design.pdf ├── design.tex ├── img │ ├── CompositionUML.PNG │ ├── CompositionUMLEPS-eps-converted-to.pdf │ ├── CompositionUMLEPS.eps │ ├── InformationERD.PNG │ ├── InformationERDEPS-eps-converted-to.pdf │ ├── InformationERDEPS.eps │ ├── InterfaceUML.PNG │ ├── InterfaceUMLEPS-eps-converted-to.pdf │ ├── InterfaceUMLEPS.eps │ ├── UIMockup.PNG │ ├── UIMockupEPS-eps-converted-to.pdf │ └── UIMockupEPS.eps └── revision_02142017 │ ├── IEEEtran.bst │ ├── IEEEtran.cls │ ├── design.bib │ ├── design.pdf │ ├── design.tex │ └── img │ ├── CompositionUML.PNG │ ├── CompositionUMLEPS-eps-converted-to.pdf │ ├── CompositionUMLEPS.eps │ ├── InformationERD.PNG │ ├── InformationERDEPS-eps-converted-to.pdf │ ├── InformationERDEPS.eps │ ├── InterfaceUML.PNG │ ├── InterfaceUMLEPS-eps-converted-to.pdf │ ├── InterfaceUMLEPS.eps │ ├── UIMockup.PNG │ ├── UIMockupEPS-eps-converted-to.pdf │ └── UIMockupEPS.eps ├── ElectronTest ├── .vscode │ └── launch.json └── App │ ├── .gitignore │ ├── .vscode │ └── launch.json │ ├── DataStruct.json │ ├── css │ ├── jquery.flipster.min.css │ └── styles.css │ ├── index.html │ ├── js │ ├── jquery.flipster.min.js │ ├── jquery.min.js │ └── script.js │ ├── main.js │ ├── package.json │ └── test.js ├── FinalPresentations ├── Cramer_Final.pptx ├── EricWinklerFinalPresentation.pptx ├── SamLichlyter_FinalReport.pptx └── Zach Final Capstone Presentation.pptx ├── FinalReport ├── IEEEtran.bst ├── IEEEtran.cls ├── blogposts.tex ├── coverpage.pdf ├── design.pdf ├── finalreport.pdf ├── finalreport.tex ├── img │ ├── CoverPage.eps │ ├── CoverPage.png │ ├── CoverPage.psd │ ├── CoverPage2.eps │ ├── CoverPage2.png │ ├── CoverPage2.psd │ ├── CoverPage3.eps │ ├── CoverPage3.png │ ├── CoverPage3.psd │ ├── Gantt Flipped Bottom Half.png │ ├── Gantt Flipped Top Half.png │ ├── Gantt Flipped.png │ ├── Gantt.eps │ ├── Gantt.png │ ├── GanttBottom-eps-converted-to.pdf │ ├── GanttBottom.eps │ ├── GanttTop-eps-converted-to.pdf │ ├── GanttTop.eps │ ├── InformationERDEPS-eps-converted-to.pdf │ ├── InformationERDEPS.eps │ ├── MVCsimple.png │ ├── PostalNotification-eps-converted-to.pdf │ ├── PostalNotification.eps │ ├── PostalUI-eps-converted-to.pdf │ ├── PostalUI.eps │ ├── UIMockupEPS-eps-converted-to.pdf │ ├── UIMockupEPS.eps │ ├── UpdatedDataStruct-eps-converted-to.pdf │ ├── UpdatedDataStruct.eps │ ├── capstoneUI1-eps-converted-to.pdf │ └── capstoneUI1.eps ├── requirements.pdf ├── team38.pdf └── techreview.pdf ├── GetStructs.js ├── IRB ├── 8017_Scaffidi_consent_Apprvd_06022017.pdf ├── 8017_Scaffidi_protocol_Apprvd_06022017.doc ├── 8017_Scaffidi_questionnaire_Apprvd_06022017.doc └── receipt.docx ├── LICENSE ├── PosterBoard ├── team38_version1.pptx ├── team38_version2.pptx ├── team38_version3.pptx └── team38_version4.pptx ├── ProblemStatement ├── IEEEtran.bst ├── IEEEtran.cls ├── ProblemStatement.bib ├── ProblemStatement.pdf └── ProblemStatement.tex ├── ProgressReport ├── IEEEtran.bst ├── IEEEtran.cls ├── Progress-Report-Fall.pptx ├── img │ ├── InformationERDEPS.eps │ └── UIMockupEPS.eps ├── makefile ├── progress.bib ├── progress.pdf └── progress.tex ├── ProgressReportEndWinter └── Progress-Report-EndWinter-team38.pptx ├── ProgressReportMidSpring ├── IEEEtran.bst ├── IEEEtran.cls ├── Progress-Report-MidSpring-team38.pptx ├── Progress-Report-MidSpring-team38.zip ├── img │ ├── InformationERDEPS-eps-converted-to.pdf │ ├── InformationERDEPS.eps │ ├── PostalNotification-eps-converted-to.pdf │ ├── PostalNotification.eps │ ├── PostalUI-eps-converted-to.pdf │ ├── PostalUI.eps │ ├── UIMockupEPS-eps-converted-to.pdf │ ├── UIMockupEPS.eps │ ├── UpdatedDataStruct-eps-converted-to.pdf │ ├── UpdatedDataStruct.eps │ ├── capstoneUI1-eps-converted-to.pdf │ └── capstoneUI1.eps ├── progress-report-team38.pdf └── progress-report-team38.tex ├── ProgressReportMidWinter ├── IEEEtran.bst ├── IEEEtran.cls ├── Progress-Report-MidWinter-team38-ppt.pdf ├── Progress-Report-MidWinter-team38.pptx ├── img │ ├── InformationERDEPS-eps-converted-to.pdf │ ├── InformationERDEPS.eps │ ├── UIMockupEPS-eps-converted-to.pdf │ ├── UIMockupEPS.eps │ ├── UpdatedDataStruct-eps-converted-to.pdf │ ├── UpdatedDataStruct.eps │ ├── capstoneUI1-eps-converted-to.pdf │ └── capstoneUI1.eps ├── makefile ├── progress-report-team38.bib ├── progress-report-team38.pdf ├── progress-report-team38.tar.bz2 └── progress-report-team38.tex ├── README.md ├── Requirements ├── IEEEtran.bst ├── IEEEtran.cls ├── images │ ├── Digdown.PNG │ ├── Filemap.PNG │ ├── Links.PNG │ ├── fileStructure.png │ └── gantt.png ├── requirements.bib ├── requirements.pdf └── requirements.tex ├── StructById.js ├── TechReview ├── IEEEtran.bst ├── IEEEtran.cls ├── revision_02142017 │ ├── IEEEtran.bst │ ├── IEEEtran.cls │ ├── techreview.bib │ ├── techreview.pdf │ └── techreview.tex ├── techreview.bib ├── techreview.pdf └── techreview.tex ├── TestProjects ├── CS340 │ ├── CS340_Final_Project_Website.zip │ ├── _header.php │ ├── battles.php │ ├── central.php │ ├── directory │ │ └── level1.php │ ├── entente.php │ ├── images │ │ ├── French_bayonet_charge.jpg │ │ └── map-entente.png │ ├── index.php │ ├── style.css │ ├── tables.php │ ├── update_army.php │ ├── update_army_battles.php │ ├── update_battles.php │ ├── update_country.php │ └── update_leader.php ├── kingfish-master │ ├── .htaccess │ ├── 404.php │ ├── README.md │ ├── admin.php │ ├── css │ │ └── stylesheet.css │ ├── editing.php │ ├── footer.php │ ├── header.php │ ├── humans.txt │ ├── img │ │ ├── bar.jpg │ │ ├── landinglogo.png │ │ └── lights.png │ ├── index.php │ ├── js │ │ └── map.js │ ├── menu.php │ ├── neighborhood.php │ └── robots.txt ├── postal │ ├── .gitignore │ ├── .vscode │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ ├── .vscodeignore │ ├── README.md │ ├── images │ │ ├── filemap.png │ │ └── postalLogo.png │ ├── lib │ │ ├── app │ │ │ ├── .gitignore │ │ │ ├── FileMap.html │ │ │ ├── LICENSE.md │ │ │ ├── LinkManager.js │ │ │ ├── css │ │ │ │ └── FileMap.css │ │ │ ├── js │ │ │ │ ├── jquery-3.1.1.min.js │ │ │ │ └── jquery.newsTicker.min.js │ │ │ ├── main.js │ │ │ ├── package.json │ │ │ └── renderer.js │ │ └── controller.js │ ├── package.json │ ├── src │ │ ├── DataStruct.json │ │ ├── controller.ts │ │ ├── extension.ts │ │ └── parser.ts │ ├── test │ │ ├── extension.test.ts │ │ ├── index.ts │ │ ├── testFiles │ │ │ ├── emptyFile │ │ │ └── shortFlie │ │ └── unitTesting.ts │ └── tsconfig.json └── snake-game-cpp-master │ ├── .gitignore │ ├── LICENSE │ ├── Makefile │ ├── README.md │ └── src │ ├── food.h │ ├── gameplay-director.cpp │ ├── gameplay-director.h │ ├── main.cpp │ ├── piece.h │ ├── rendering-director.cpp │ ├── rendering-director.h │ ├── snake.cpp │ └── snake.h └── postal ├── .DS_Store ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── README.md ├── images ├── filemap.png └── postalLogo.png ├── lib ├── app │ ├── .gitignore │ ├── FileMap.html │ ├── LICENSE.md │ ├── LinkManager.js │ ├── css │ │ └── FileMap.css │ ├── js │ │ ├── jquery-3.1.1.min.js │ │ └── jquery.newsTicker.min.js │ ├── main.js │ ├── package-lock.json │ ├── package.json │ └── renderer.js └── controller.js ├── package-lock.json ├── package.json ├── src ├── DataStruct.json ├── controller.ts ├── extension.ts └── parser.ts ├── test ├── extension.test.ts ├── index.ts ├── testFiles │ ├── emptyFile │ └── shortFlie └── unitTesting.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.log 4 | *.out 5 | *.synctex* 6 | *.toc 7 | *.dvi 8 | *.blg 9 | *latexmk* 10 | *.fls 11 | *dirStructure.html 12 | *.mp4 13 | 14 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible Node.js debug attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [{ 7 | "type": "node", 8 | "request": "launch", 9 | "name": "Launch Program", 10 | "program": "${workspaceRoot}/app.js", 11 | "cwd": "${workspaceRoot}" 12 | }, 13 | { 14 | "type": "node", 15 | "request": "attach", 16 | "name": "Attach to Process", 17 | "port": 5858 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-1-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did Last Week 2 | 3 | We had spring break and we all worked somewhat sporadically over the break, not that much though. Then we got back to school and we met on Monday and worked on some bugs and features that needed to be added. We got those to a working stage and then we met with our client on Tuesday. This meeting went poorly. He really wanted progress on the UI and we haven't been focusing on the UI as much as the functionality. That was disappointing, but with what we have set up already we feel we can make the changes he wants to see by our next meeting. So those changes are what we have been working on. 4 | 5 | # What We Plan To Do 6 | 7 | This next week we meet with our client and hopefully show him a better UI. If that meeting goes well he will start gathering funds for testing and get us started on making good experiments for users. We also will continue to squash the numerous bugs that we are running into with the extension. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-1-Winter.md: -------------------------------------------------------------------------------- 1 | # What We Did 2 | 3 | This week we met with our Client and showed him our first prototype. It was not to the point that we wanted but he seemed very happy with the results and gave us some good feedback and advice for the future. 4 | 5 | We did a lot of work toward getting our extension into an actual working product. Previously we had three different parts and now they are finally coming together. But the bring these parts together was more work than we initially thought it would be. There was a lot of debugging and a lot of frustration, but we are quickly getting much closer to our end goal. 6 | 7 | # What We Plan to Do 8 | 9 | This next week we are going to crank it down a notch. We don't have a deadline from our client until the end of february and we should be able to work more slow and steady rather than this weeks full pace non stop. But we will keep working on it. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-10-Fall.md: -------------------------------------------------------------------------------- 1 | # What we did this week 2 | 3 | This week we made a design document. This made us look more into the details of our project and 'how' it was going to work. We also met with our client and showed him our most recent prototype. I feel like he was not happy. 4 | 5 | # What we plan todo next week 6 | 7 | nothing have a nice break during finals, then during break we will work on getting the prototype working way better. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-10-Winter.md: -------------------------------------------------------------------------------- 1 | # What We Did 2 | 3 | We continued work on the large todo list that we feel we need to have finished by the time of actual release, and we are making progress. I specifically working on the process bridge that will connect the electron terminal to the Vscode IDE. 4 | 5 | # What We Plan To Do 6 | 7 | With Spring break finally here I think some of us are going to take a small break. I myself think I will try to get the process bridge working and have the users be able to navigate to the code from the electron window, but we will see if I will be able to accomplish that. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-2-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | This week we worked on improving the UI for our client. We made it more responsive and improved the quality of information that is produced and shown on the UI. But with all this improvement we also introduced a number of bugs that will need to be addressed in the future. But with the improvements we showed our client we were able to get him satisfied with what we had and he said that we should start organizing a testing group that will try the extension and that we can get results from the tests and maybe publish the work. This meant we had to get certified by the IRB, so we worked on getting certified and working on creating a short questionnaire that we will use to quantify the results of the tests. 4 | 5 | # What we plan to do this week 6 | 7 | This week we hope to address some of the more pressing bugs and create two use cases that the people we will be experimenting on will be using during the test. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-2-Winter.md: -------------------------------------------------------------------------------- 1 | # What we did this week 2 | 3 | This week we met and talked out some of the progress we are having. We also assigned some more work to me. 4 | 5 | # What we are planning to do 6 | 7 | In the next week I hope to work on the Error handling and the UI that the user will see. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-3-Fall.md: -------------------------------------------------------------------------------- 1 | **Week 3 Senior Project Work** 2 | 3 | This week I worked on the problem statement, and thought about the design of the tool that we are planning to make. 4 | 5 | We talked to our client about what he wanted and what he was looking for in our plan. We had some initial confusion about what we were supposed to do. Our client Christopher Scaffidi wants us to use IFT design patterns within a the tool. We were more focused on just making the tool itself. After talking to him we are on the same page. We will be using the tool and make a prototype that we might be able to test by the end of the year. 6 | 7 | Personally I was part of the conversation that about making the design, we are planning on having a code "tagging" system that will allow users to tag their code for the organization mechanism. This is not the final solution but it is the idea we have at the moment, and Chris thinks it's good. I also worked on the proposed solution part of our problem statement. That section still needs some polish, but I was assuming this is a rough draft. I tried to define what types of IFT design patterns we would be using within the tool we are creating and define some parts of IFT. I don't think that I was looking from the 10,000 foot level. I need to work on that in the future. 8 | 9 | Thus far the tricky part of our project is that the 'problem' is just to use IFT. That is what our client wants. What we have proposed is not a problem but a solution. We want to implement this tool to prove that IFT within an application makes work easier, or at least test that it does. So that's what we are doing now. 10 | 11 | **For week 4** 12 | 13 | We hope to maybe start working on our requirements, and resumes. I really want to get started on the coding of the project but I think we do that mostly in the winter? Would it be bad to start sooner? -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-3-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | This week we worked on some minor bugs, we met with Kirsten about our poster, and we started working on getting demo projects for our user testing. This was difficult because we had to make two projects that were similar but not so similar that they had problems that were in the same or recognizable spots. We need the first test to not teach the user information of the second test. The Poster feedback we got was that we need less (more concise) text, and the pictures need to be a bit bigger. There were also some nitpicky changes that we hope to change. 4 | 5 | # What We Plan To Do Next Week 6 | 7 | This week we hope to make all the improvements on the poster and the get some bugs fixes for the extension and finish the demo projects and maybe even get some our friends to unofficial run through our tests and questionnaire to get an idea of how the tests run and how they feel to user and for us as testers, but we will see if we get that far. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-3-Winter.md: -------------------------------------------------------------------------------- 1 | # what I did this week 2 | 3 | This week I didn't really do too much. I started working on my error handling. It doesnt quite work but it does highlight a line all red. 4 | 5 | # what I plan to do next week 6 | 7 | This next week I hope to get it fully working and start work on my error UI. And figure out how to trigger the extension on save. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-4-Fall.md: -------------------------------------------------------------------------------- 1 | # Week 4 2 | 3 | ## What I did 4 | 5 | This week I worked with the team to help define the the problem statement more and start to think about some more basic requirements. I also started looking more at the Visual Studio Code that we are planning to use as the basis of our extension. I was able to easily make a 'hello world' of the extension. And I made my own branch and logged the meeting with a python script that I made it's fun it is working nicely. I need to add some markdown implementation, but I am feeling lazy at the moment. I put it in my HelloWorld Branch. 6 | 7 | We met on Wednesday, and worked for three hours hashing out different requirements and the problem statement. 8 | 9 | ## Our Plan For Next Week 10 | 11 | Next week we plan to work on the revision of the problem statement and get that finalized, and go to the career fair. We also plan to go work on the requirements more and I will probably work on expanding the hello world extension. 12 | 13 | -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-4-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week. 2 | 3 | We had to finish up the bug-crunching and adding the last small features to our extension in expectation of the code freeze. That approaching this coming up on Monday. The major requirements that we had to complete were: 4 | 5 | 1. be able to parse a large project quickly. We haven't tested that. 6 | 2. Be able to hover over notification list and highlight node where it is located. 7 | 3. Be able to click on the list and navigate to the code area. 8 | 9 | We were able to test the large project, but the tests need to be more extensive at this moment. 10 | 11 | # What We Plan To Do Next week 12 | 13 | This weekend we plan on implementing the other two features and they should be very easy to implement given that all the ground work is in place. We are not worried about the code freeze except for proving that we can parse a large project really quickly. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-4-Winter.md: -------------------------------------------------------------------------------- 1 | I worked on the error notification system 2 | 3 | I plan on working on the on save event, and continued development on the error UI. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-5-Fall.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | This week we worked on our problem statement final version. We only needed to add citation so it wasn't that bad. We also made some progress on our first HelloWorld Extension and making it look at the current files for the user. We also started our requirement document. 4 | 5 | # Our Plan for Next Week 6 | 7 | Next we plan to do more of our requirements document and make a lot more progress on our simple prototype. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-5-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | We finished all the features of the extension in anticipation of the code freeze on Monday. So we added 1) The highlighted nodes 2) the navigate to code on notification click. Besides that, we worked on a Wired Article for Senior Design. We wanted to get more work done on the test cases for our experiment but after the code freeze we lost some motivation and took a break. 4 | 5 | # What We Plan To Do this Week 6 | 7 | We hope to finish up the use cases for our experiment than get some of our friends to try out the extension and run the user case study with them to test the test. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-5-Winter.md: -------------------------------------------------------------------------------- 1 | # What I did this Week. 2 | 3 | I made a function that does a regex function over a file line by line 4 | 5 | # What I plan to do next week 6 | 7 | The next week I plan to work on the details of getting our extension on the 'store' and getting it out to the people. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-6-Fall.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | 3 | This week we worked on the Requirements document. While doing this we were forced to make a lot of decisions about the project that we have been needing to make. We were faced with a lot of requirements that we had to define that were previously undefined. I hope that we haven't set ourselves up for failure. 4 | 5 | ## What We Plan To Do Next Week 6 | 7 | With the next week we hope to get a small prototype done for our client, to prove that we have made progress in the development side. We also want to get some paper prototyping done so that we can get a better idea of what we want the application to look like. We also need to do the tech document. I think that is what it is called. 8 | -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-6-Spring.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | This week we finished up our user test testing, and use cases. And we gave our extension to some people to try our testing. The Problem we had is that we should have probably had this done last week, we are behind schedule a bit. But it's weird cause we aren't worried about the class anymore. We know that we will be fine for Expo and all the write-ups that need to happen. But for our client, we are probably behind, but not enough to be worrisome. 4 | 5 | # What We Plan To Do Next Week 6 | 7 | Getting the people to test our tests was really good we now know that we need to change and we will probably be adding the finishing touches to the tests and then ask our client for some feedback on the test and then we will hopefully survive expo. We will also be making our progress report. 8 | -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-6-Winter.md: -------------------------------------------------------------------------------- 1 | # What we did this week 2 | 3 | This week we went over our old documentation and I made a line by line parser that we now don't need. That's ok. 4 | 5 | # What we plan to do next week 6 | 7 | In the next week we plan to get our 1.0.0 out, and then we will make video of our mid way point. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-7-Fall.md: -------------------------------------------------------------------------------- 1 | # What We Did 2 | 3 | This week we focused on getting out a very simple first prototype for our client. We made a extension that displays all the files in the users work station. We also worked on splitting up the project into 4 main parts that each of us can 'specialize' in. We plan on working on these different parts and each of us splitting them up even more while writing the tech document. 4 | 5 | ### The four parts are: 6 | * Graphic User Interphase 7 | * Files 8 | * Parser 9 | * Integrated Development Environment 10 | 11 | We are still trying to figure out who is going to be a in charge of which part except Sam is probably going to use the parser. 12 | 13 | I made a log of some of our meetings do you want it? 14 | 15 | | Day| Time | Message | 16 | |----------------|-----|---| 17 | | Wed 11-09 |16:34|start | 18 | | |16:34|This is the worst! | 19 | | |16:34|Trump got elected and JavaScript is terrible | 20 | | |16:34|I don't understand promises or Thenables. | 21 | | |16:34|We got a list of files printed to a HTML file. | 22 | | |12:12|we have decided to use TypeScript cause the all the examples are in TypeScript | 23 | | |12:13|Eric and Zach installed node on to their computers and each went through the process of making an extension.| 24 | | |12:14|This time it will be a TypeScript extension. | 25 | | |13:15|We now how have an extension.ts| 26 | | |13:16|and it makes a preview window! | 27 | | |16:12|We met with Scaffidi it was great| 28 | | |16:12|We now have a basic architecture that we are going to follow| 29 | 30 | 31 | # What We Are Going To Do 32 | 33 | The next week we are going to get our Tech document assignment done, do some research into other tools that might possibly be better for our project. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-7-Winter.md: -------------------------------------------------------------------------------- 1 | # what we did This week 2 | 3 | This week we completely redid the extension. We made a lot of improvements to the prose and the th way that the graph is generated in the UI. I dont know how it works but it seems to work really well 4 | We also put the extension up on the market place. This is great cause now we can distribute our extension much easier. 5 | 6 | # what we plan to do this week 7 | 8 | I would like to get a some settings done for our extension. done w -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-8-Fall.md: -------------------------------------------------------------------------------- 1 | # What We Did This Week 2 | 3 | We spent a lot of time working on the tech document. I specifically worked on the sections: 4 | * IDE: looked at the Brackets, Atom, and VSCode 5 | * Language: looked at TypeScript and Javascript 6 | * Event Handling: looked at htmlpreview, event emitters, and the built in events. 7 | I learned a lot about Visual Studio Code which was really nice I feel like I don't know a lot about VSCode. 8 | 9 | # What we plan on doing next week 10 | We plan to start our design doc ASAP, and work a little more on our prototypes. 11 | -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-8-Winter.md: -------------------------------------------------------------------------------- 1 | # What I Did This Week 2 | 3 | Well we met with chris. Was that this week? Yeah it was, and he wasn't as happy as we had hoped. I did get a simple start on setting though and I am happy about that, I don't know if we will use them. 4 | 5 | # What I plan On Doing This Week 6 | 7 | This week we plan on making the extension more useful. We have a huge list of features that we plan to add this weekend. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-9-Fall.md: -------------------------------------------------------------------------------- 1 | # What I did This Week 2 | 3 | Not a whole lot. I did look around the documentation for VSCode and started to think about the design document. That is truly what spurred the curiosity to look further into the specific documentation of VSCode. I am worried we won't know enough to write a fully fledged design document. I hope to look into this more during the break and will try to do some programming this week. 4 | 5 | # Plan for Next Week 6 | 7 | We plan to start and finish the design document, and work a lot on our actua project. I feel as though working on the design document should fuel the work on the actual program. -------------------------------------------------------------------------------- /BlogPosts/Cramer-Smith-Update-Week-9-Winter.md: -------------------------------------------------------------------------------- 1 | # What we did this week. 2 | 3 | Almost nothing. We worked some this weekend we now have C functions working. That makes our parser way more useful to me personally. 4 | 5 | # What we plan to do next week 6 | 7 | Next week there are a number of things that we need to do. We have to do our progress report again and make a video thing for that. We also hope to have our project entirely done by the end of this quarter so we will probably work on the final touches of our extension and get it up on the marketplace and see if we can get some actual users. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-1-Spring.md: -------------------------------------------------------------------------------- 1 | The week We implemented a few new features and had a meeting with our Client. 2 | I spent a bit of time working on fixing some performance problems with vis.js. When running in a hierarchical mode, vis runs several optimization algorithms in an attempt to limit white space between nodes. However, our trees aren't perfect and can nodes can have links over several levels of the tree and this seems to cause vis to hang when it tries to optimize. I'm currently midway through trying to massage the input such that vis will begin to behave in a more useful way. 3 | 4 | The result of our client meeting was that we would need to work on the UI a bit\and focus on using the tool daily. We're planning on meeting with him again next week to show our progress. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-1-Winter.md: -------------------------------------------------------------------------------- 1 | Over break, the Postal team began implementation. We had three primary modules that were worked on be different people. Sam worked primarily on the parser, Zach on the JSON implmentation and access methods and myself on the UI. 2 | 3 | Over break I created the UI within an electron application. The UI is currently capable of reading in our standardized JSON and generating an interactive file map. The file map nodes are color coded by file type, have a size determined by the number of links to the node, can be dragged around and feature a mostly complete implementation of the "dig down" functionality. The file map can also be zoomed and panned. 4 | 5 | The next step is to update the file map to be generated on a command from VSCode. We're currently having a little trouble with this as it appears that electron needs to be launched in a certain way from its own process. 6 | 7 | WE also had a meeting with our client this first week. We brought him up to speed with where the project is and what was giving the team difficulty. He offered some very good advice about how to further develop the tool. He specifically said to focus on the one feature that makes our tool most useful and to think about what situation it might be most beneficial for testing purposes. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-10-Fall.md: -------------------------------------------------------------------------------- 1 | This week we primarily worked on building out our design document. This was a lot hard than the previous documents as we had a bit of trouble trying to interpreter the IEEE standard. It was fairly vague in it's explanations. We later found out during our TA meeting that that was by design as a highly specific document might place constraints on a projects design. We also had a brief meeting with our client to discuss plans and deadlines for over break. 2 | 3 | Next week we will be primarily working on our final report for the term and making plans for the next few weeks. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-10-Winter.md: -------------------------------------------------------------------------------- 1 | This last week we began to implement the last few features for a close to finished version of postal. I worked a bit on fixings some bugs with the new node clustering system. Additionally I added the ability to see link information (line numbers) when links are selected. This was harder to do than I originally anticipated. The clustering system actually creates all new edges and nodes when things become clustered, so finding the correct objects to manipulate was a bit of a pain. Additionally I reintroduced file links as red lines but they will be changed again here relatively quickly. 2 | 3 | Next I will be working on adding options for displaying file links, making sure our process bridge is working correctly and adding a couple of UI controls. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-2-Spring.md: -------------------------------------------------------------------------------- 1 | This week we continued to adjust postal to better fit our client's needs in anticipation of a meeting we had on Tuesday. He was happy with the improvements we had made and was also pleased that we were using the tool on our own time. We began to make plans for testing and created a new timeline for the group. In the next few days the team will get IRB certified and create a list of questions that will eventually become our end of test questionnaire. I personally will be working on a couple of bugs I noticed as well. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-2-Winter.md: -------------------------------------------------------------------------------- 1 | This week we met to discuss some bugs with the extension when it parsed larger projects. The leading theory was that the parser would create a JSON that had links to node ids that didn't have their own structure in the JSON. This caused the GUI to try to link nodes that might not have existed. Otherwise, the extensions performance seems to work well on larger (+100 nodes) projects so far. 2 | 3 | The plan for the weekend is to get the "dig down" functionality refactored. I'll probably be adding a couple buttons to help control that. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-3-Fall.md: -------------------------------------------------------------------------------- 1 | This Week: 2 | 1. The group wrote out the problem statement and spent a little time reworking the abstract. 3 | 4 | 2. Began discussing basic design of how Postal will work and made sure that the project was going to be feasible. 5 | 6 | 3. Just today we sat down with Chris and discussed expectations of the project. It surprised me that we might actually get a chance to run a study with actual people. REUs FTW. 7 | 8 | 4. Scheduled the next four weeks. Mostly list what we wanted to have accomplished when and reserved rooms. We're not at the point yet where we're ready to divide up jobs so we'll be working together for the next two weeks at least. 9 | 10 | 11 | Next Week: 12 | 13 | By the end of the next week we'd like to have our requirements nailed down and start to draft out our design for the system. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-3-Spring.md: -------------------------------------------------------------------------------- 1 | This week the team continued forward with our plans to prepare for testing. Our client has a hold of our certificates for IRB approval and our list of questions. He suggested that we begin prototyping the trials for the test and have a rough draft of the experiment by next Monday. We plan on completing this this weekend. 2 | 3 | I also had a quick meeting with Eugene Zhang looking for feedback on our UI. He has some pretty good ideas as to how to make the UI a bit more intuitive and also put me in contact with Yue Zhang. I will be meeting with her next week to get some feedback on the project as well. 4 | 5 | This weekend I also plan on doing a redesign of our poster as a result of a feedback meeting we had today. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-3-Winter.md: -------------------------------------------------------------------------------- 1 | This week I mostly focused on getting our electron/node GUI to launch when it is called from the vs code extension. It's not quite working yet, but I believe I'm getting close. I've been looking into a node module called process-bridge which should help out with this problem. 2 | 3 | I hope to be done with this next week and also start on the dig down refactor and styling the window. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-4-Fall.md: -------------------------------------------------------------------------------- 1 | # This Week: 2 | This week we spent a chunk of time revisiting our problem statement and started a plan for the rest of the term. We set up a schedule for team meetings which will be weekly. We also spent a good chunk of time discussing basic requirements and touched on the design of our tool. We were mostly attempting to reassure ourselves that our project was feasible and made sense. The result of the discussion was a narrowing of our project's scope. 3 | 4 | # Next Week: 5 | We're planning on having a completed(ish) version of our requirements done by the end of next week. Additionally we may spend a bit more time familiarizing ourselves with visual studio code its extension system. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-4-Spring.md: -------------------------------------------------------------------------------- 1 | This week I primarily worked on our poster board. Kirsten asked that I write up a list of design tips for other groups which she seemed to appreciate. Unfortunately, the design I worked on violated a couple a guidelines so I had to revert back to an older version and submit a modified version of that. 2 | 3 | We also produced a basic list of questions that will eventually become our questionnaire for user testing. We sent the list to our client for suggestions. 4 | 5 | Our plan is to make some last minute fixes this week and to also do a couple of test runs with people we know using the above mentioned questions we produced for our client. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-4-Winter.md: -------------------------------------------------------------------------------- 1 | This week I finally got the GUI to launch from the extension pragmatically! this took quite a bit longer than I thought it would (it shold not have been this hard...) I didn't actually need to use the process bridge to get it to launch. Instead I found the electron has an executable buried way, way down in its npm package directory. I can launch that from a new node thread and everything seems to work. It also works on the three OSs we're concerned about. 2 | 3 | The process bridge wasn't a loss as we'll probably need it for communications between the two node processes. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-5-Fall.md: -------------------------------------------------------------------------------- 1 | This week the majority of our time was spent writing the requirements document. Part of that process involved getting a very, very rough schedule for our project. We had to mostly make guesses as to how long each component would take but we left some flexibility room at the end. We also made some finishing touches to our problem statement. 2 | 3 | The plan next week is to begin preparing for our next meeting with out client. He'd like to see something on the screen (even hello world as a VSC extension). We're planning on getting our windows set up. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-5-Spring.md: -------------------------------------------------------------------------------- 1 | This week we began finishing features in preparation for the code freeze. I focused on fixing a couple bugs and getting individual nodes to highlight when the user hovered over a notification in the notification list. 2 | 3 | We also released a 1.0 on the VScode store which has a ton of improvements since our last push. 4 | 5 | We also began to make some progress on user testing by finding pre-test subjects and creating a first draft of a test form. 6 | 7 | We still have a lot of work to do creating the test environment. Our form calls for a couple projects for the users to run Postal on involving some pretty specific functionality. We're having a little trouble finding directories to use and may have to make some ourselves. 8 | 9 | Next week we will continue developing our user test forms. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-5-Winter.md: -------------------------------------------------------------------------------- 1 | We spent this last week developing and working towards a plan to provide a public release of Postal on the extension marketplace. This release will not be entirely feature complete but we'd like to have feedback on what we currently have working by the end of the month. Our plan is to finish all functionality short of errors, release what we have on Monday (2/20) and during that week finish errors and solicit feed back from both the market place and personal connections. 2 | 3 | I will be focusing on cleaning up the UI and getting the nodes in a hierarchy arrangement. We came to the conclusion that displacing both links in terms of includes and hyperlinks as well as displaying links that indicate a node's position in the project directory was overwhelming. This is especially true in a web like configuration of nodes. Instead, we will display the nodes in a directory based hierarchy where the links displayed by default will be indicative of the node's position in the project directory. When a node is clicked on, the links that indicate a connect between files (includes/hyperlinks) will then be rendered. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-6-Fall.md: -------------------------------------------------------------------------------- 1 | This week we worked towards finishing our requirements document. We also spent more time discussing design options and what facets of this project were feasible with the limited time we have to implement before spring testing. We also discussed and began work on a prototype for our client that will need to be complete next week. 2 | 3 | Next week we will be working on the above mentioned prototype and sitting down with our client to discuss the project's progress. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-6-Spring.md: -------------------------------------------------------------------------------- 1 | This week we mostly focused on our user test development and our midterm review. 2 | 3 | I sat down with a classmate on Friday and ran through both of our trail exams with him. 4 | it was a very useful experience as I found out that we hadn't written grammars for one of the tests yet, Needed to double our number of questions and the tester had actually found a bug in our test as well. There were some other smaller issues as well, like one of the project directories not having any TODOs in them despite having questions about them. 5 | 6 | For the next week we will continue tuning our tests, making the above changes. I will also be making a few fixes in our code as well, I may add a reset button at the suggestion of our tester. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-6-Winter.md: -------------------------------------------------------------------------------- 1 | This week we began the process of of refactoring all of postal. It actually turned into a complete redesign and rebuild from scratch. I mostly headed the redesign while Sam became our Code-driver. As a result there are now clear Interfaces between our Parser, Controller and UI and all of our code is of a much higher quality. I will be doing a design document update to reflect these changes, they are a little too numerous to mention in a blog post. At a high level the extension now works like this: 2 | The user luanches the Postal extension. 3 | Our extension calls our controller which then: 4 | Finds all files and directories recursively. 5 | Calls the parser to parse each file. This returns an array of standardized Tokens. 6 | The controller turns those tokens into our JSON File and calls the UI. 7 | The UI reads the JSON and launches. 8 | -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-7-Fall.md: -------------------------------------------------------------------------------- 1 | This week we spent a lot of time discussing design and prototyping. 2 | We started to really nail down the design of our 'file map'. Ideally, it will look like a big web of files that we can zoom into but should the zooming prove too difficult, we also have an alternate design set up. We're a little worried the file map might be overwhelming in terms of information being displayed to the user but otherwise we're happy with the direction we're planning to take. 3 | 4 | Additionally, we spent a good chunk of time prototyping a visual studio code in preparation for a meeting we had on Thursday. We built an application that basically parsed for all the files in the current directory and returned it as html within a separate column in vs code. This got us over A LOT of technical humps we we're worried with. 5 | 6 | Our meeting with Chris went well. He gave us a pretty elegant architecture to set up our extension with which naturally divided into four big tasks we could each take responsibility for. 7 | 8 | gg -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-7-Spring.md: -------------------------------------------------------------------------------- 1 | We've just finished expo but we still have several things to complete for this project. User testing still needs to be completed. To my knowledge we are waiting on IRB approval. I personally would like to do at least one more trial run. There are also a few very minor features I would like to implement that may help with testing. After trails are completed we may be asked to write a paper about the tool and the trails. 2 | 3 | This project has been easily one of the more difficult things that I have attempted and I feel I've learned quite a few lessons from the work the team has done. Skill wise, I’ve become much more component with JavaScript and NodeJS. I’ve also managed to get a little better at git (conflicts are no longer have me resetting to head). I’ve also gained a lot of experience with design. When we had our midwinter refactor, we rebuilt the entire extension from the ground up and had to think about fitting all of the complex behaviors of the system together. I found that it is much easier to take a big problem and simplify it into smaller, manageable tasks. I’ve definitely learned a lot about abstracting. 4 | 5 | This project has made me realize that I actually really enjoy the design/architecture part of software development and I think that is something I would really like to specialize in in my career. 6 | 7 | Overall, this project was a success for me, personally. While it’s still a little early to gauge the success for our client, I have a good feeling about how our user trials will turn out based on the informal tests we have been running. 8 | -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-7-Winter.md: -------------------------------------------------------------------------------- 1 | This week we finished our refactor of Postal and implemented a few new features (our dig down is currently working better than before). We also published it on the store on Monday and have been bug fixing since. We still have to implement the one click links appearing and error parsing. 2 | 3 | A challenge we have is that our npm modules are too big to include packaged in our extension, so we have to currently have the user run 'npm install' in their extension directory before it will work. This is not ideal and we're currently looking for ways around this. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-8-Fall.md: -------------------------------------------------------------------------------- 1 | This Week we spent time discussing what our shared data structure will look like moving forward. This data structure will primarily be used by Sam and myself; Sam gathering the data and me using it. 2 | 3 | Additionally we spent some time finishing up our tech review. We discussed the options each of use researched and made a few decisions about what technologies we'll be using. As far as I'm aware, we are still sticking with VS code and Typescript as our primary technologies, and using a JSON file for data storage. 4 | 5 | Next week we should be doing a bit more prototyping and working on our presentation and poster board. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-8-Winter.md: -------------------------------------------------------------------------------- 1 | This week we met with our client and decided on a list of features to complete in the next couple weeks. this includes refactoring our UI with a new vis method called clustering. Additionally we will be implementing C-like function parsing and other UI features like being able to switch between web view and a hierarchy view. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-9-Fall.md: -------------------------------------------------------------------------------- 1 | This week we haven't yet committed much time to the project. The plan is to begin work on a first version of the file map within the next couple of days. The goals of this first version will be to read in test data from a build of our current shared data structure and render them as objects with Visual Studio code. We are planning on starting off with vis.js and moving through our other options until we find something that will work within the VS code environment. -------------------------------------------------------------------------------- /BlogPosts/Eric-Winkler-Update-Week-9-Winter.md: -------------------------------------------------------------------------------- 1 | This week we planned on implementing a character by character parser but instead opted for a sort of priority base parser that reads in the entire file. This allow us to write grammars for things that may appear on multiple lines like for c-function definitions. Additionally we began the process of switching over to a clustering method for our UI nodes and Zach worked on UI controls. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-1-Spring.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | This week we met with our client who was slightly disappointed in the progress we had made in the last few weeks but offered valuable feedback and a chance for us to try again next week. So this week we have focused primarily on the feedback given to us by our client so we can meet his expectations by our next meeting. I have mostly been in charge of changing some of the subtler UI elements to make the tool more user friends and a bit easier to find/navigate information. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-10-Winter.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | This week I fixed our postalignore to allow a set of files or directories to ignore by the parser. I also moved it the settings that the user can edit within VSCode. This is instead of a separate file they would have to include. I also built a new grammar and parser behavior to allow comments to be ignored. This fixed some issues where `if` and `while` blocks were being considered functions by our default grammars. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-3-Winter.md: -------------------------------------------------------------------------------- 1 | # This week 2 | This week I didn't get as much done as I was planning. I made some progress on the parser but didn't get to working on the links or getting the directories to show up as nodes. Our team also met up and decided we should move our creation of the data structure to the parser instead of parsing then creating the data structure. This would save some overhead of passing data around and would prevent us from touching the data twice. 3 | 4 | This will be my task for next week. We also met with Vee for the first time this term to catch up and go over what we would be doing this term for the class, apart from working on our project. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-5-Winter.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | I started to move our extension to an MVC framework. To do this I basically took a lot of the functionality we had and "functionalized" our code into a controller class. This will also help Zach out with his asynchronous issues he's having so he can just call one of these functions when he needs to instead of having to other workarounds. 3 | 4 | ## Next week 5 | Next week I will continue moving things over to MVC. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-7-Winter.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | This week we continued to work on our extension. The biggest thing was we uploaded it to the Microsoft Visual Studio Code Marketplace so we could get users feedback on it. So far we haven't heard from any users on the store but we have given it to a few of our friends to test it out for us. We fixed some bugs related to the store and some general ones we didn't realize were there until we gave it to people. 3 | 4 | We also put together our progress report this week. 5 | 6 | ## Next Week 7 | Next week we have a meeting with our client and we also plan on pushing some more bug fixes to the store. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-8-Winter.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | 3 | This week we met with our client to show him our progress on our extension. He gave us some valuable feedback on the UI of our extension. We went on to try and implement these as well as fix some of the bugs we found last week. 4 | 5 | ## Next Week 6 | 7 | Next week we plan on getting c-like functions going. -------------------------------------------------------------------------------- /BlogPosts/Sam-LichLyter-Update-Week-9-Winter.md: -------------------------------------------------------------------------------- 1 | ## This Week 2 | 3 | This week we implemented c-like functions. This allows our tool to visualize c-like functions similar to the way we visualize divs and links in our web projects. We also tried to implement a character-by-character parser, but we decided we could rework our current parser to parse the whole file at once and still get the same features we wanted out of a character-by-character parser. We also started on clustering our nodes. 4 | 5 | ## Next Week 6 | 7 | Next week we plan on getting our clustering to completely work as well as some other basic features like navigating to the users code when they click on links, not parsing the user's comments, and getting a .postalignore working so they can specify which files they don't want our extension to parse. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-1-Winter.md: -------------------------------------------------------------------------------- 1 | # Winter Break 2 | Over winter break we tried to get a lot of the development done while we had some extra free time. The UI logic that Eric was working on is pretty close to being finished, I worked a bit on the parsers over break but didn't make a ton of headway until this week actually. 3 | 4 | # This Week 5 | Like I said, this week I made significant progress on the parsers. I worked mainly on getting data from each of the files we were parsing and Zach and Cramer worked on taking the data I had found and serializing it into a JSON data structure that our UI could read. Before we had pretty separate pieces all doing different things, but this week we put them all together so they could all communicate which tied up our project pretty nicely. 6 | 7 | We also met with our client this week to catch up on our progress over the break and decided where we would go from here. 8 | 9 | # Moving Forward 10 | Looking to the rest of the term we still have a few feature we need to implement like getting the links between our nodes to show up, I know we're actually really close on this. Our client gave us some pretty good advice about hooking up our parser logic to the UI and how our users should interact with our tool. We also talked about timelines and what milestones we should aim for within the next couple of months. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-10-Fall.md: -------------------------------------------------------------------------------- 1 | This week we finished up our Design Document. We also had a meeting with our client in which we talked about the progress we made since our last meeting as well as our plan for what we want to get done over the Christmas break. I also messed with our parser a bit make it better at finding what we wanted. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-2-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we worked on fixing minor bugs within our tool. For example we had some UI that was a little wonky that we fixed up, we also still have a bug that catches if, else, while, etc. blocks as functions when defined in TypeScript. But mostly minor bugs like this were taken care of this week. We also met with our client again to to talk about IRB testing. This went well and we have a plan to move forward in the coming weeks to get testers. 3 | 4 | # Next Week 5 | Next week we plan on fixing smaller bugs for our tool, but I think mostly our focus will be on the poster board that's coming due soon. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-2-Winter.md: -------------------------------------------------------------------------------- 1 | # This week 2 | This week we met up to go over the progress we'd made since last week. Eric made some progress on the UI, Cramer made some progress on getting the editor to show the errors we find, Zach and I worked on the parser a bit to get our links working that didn't work last week. Zach and I are pretty close are getting the links to work as well as passing more data to the UI. 3 | 4 | # Next Week 5 | Next week I would like to get the UI to display nodes for directories we find in the main directory we're parsing. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-3-Fall.md: -------------------------------------------------------------------------------- 1 | # Week 3 2 | 3 | This week I set up our GitHub page (welcome), I also worked on our problem statement along with the rest of the team. I have been our main contact with our client, Chris, since he and I have worked together for the past year on similar research projects. This week we sat down with Chris to discuss some of the specifics of the project and to form a rough outline of what he wants to see and when. 4 | 5 | Earlier in the week we hammered out a few of the main design decisions for our tool and how we expect the user to interact with it, along with what tools we will be using to build ours, and what languages we want to support at first launch. 6 | 7 | Next week we plan on getting our requirements document in a near finished state. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-3-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we met with Kirsten to review our poster and another group's poster. We also started working on our user tests for our IRB testing. We also finished all of our IRB certification this week. We didn't really run into any problems other than things we needed to fix on our poster which we just got that feedback today. 3 | 4 | # Next Week 5 | Next week we plan on continuing working on our user test. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-4-Fall.md: -------------------------------------------------------------------------------- 1 | This week we revised our problem statement. In doing so we focused more on web developers and refined the goals of our product to reflect that. We decided to create a more visual component which we could use to convey the structure of the users code in a more understandable format. 2 | 3 | We also met with our TA, Vee, who gave us some advice on how we should approach the class and our teammates. Being pretty close friends I think we'll be okay and we've had excellent communication in the past, so I'm not too worried about this. 4 | 5 | We started thinking about our requirements and the requirements document which we plan on working this weekend. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-4-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we worked on our poster board for expo mainly. We went through a few iterations working with Kirsten and our client. Eric was the main design guy and the rest of us worked on the content of the poster. We didn't run into many issues other than a few communication issues which were worked out. 3 | 4 | # Next Week 5 | Next week I imagine will mainly be our WIRED writing assignment. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-4-Winter.md: -------------------------------------------------------------------------------- 1 | # This week 2 | This week I got a little more time to work on the parser than last week, but I still didn't get the directories to show up. I think I will hand this off to Zach because he seems to be working more with this data than I am at the moment. I'm going to move on for now and switch our program to a more defined Model View Controller design pattern. Eric has started creating a controller, I just need to refactor the code we wrote for the VSCode extension itself. 3 | 4 | # Next Week 5 | Moving our extension to MVC might take a little longer, so I will also work on this next week. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-5-Fall.md: -------------------------------------------------------------------------------- 1 | This week we primarily worked on revising our Problem Statement as well as the rough draft of our Requirements Document. We came up with a tentative schedule for what we wanted to accomplish and when. Because we weren't given much direction in class as far as when certain documents are due, we had to more or less make it up ourselves. The schedule we came up with I think will allow us to move forward at a steady pace accomplishing the tasks and getting a working product by the end of Winter Term. This will give us plenty of time in the Spring to test our product with other people. 2 | 3 | Next week we plan on getting some functionality built into our extension for VSCode. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-5-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we submitted our poster board for expo. We had to make a few last minute adjustments to clean it up a bit and make it easier to read. We also finished up everything for the code freeze. We implemented a few last minute features to make the tool a little bit easier as well as fixing some of the last remaining small bugs. We also interviewed for and wrote our WIRED article. I wrote mine for the STEM Academy Data Solutions team. I interviewed Shannon Ernst who seemed like the team lead. This week we also tried to find someone who would be willing to try out our tool so we could test our user tests, but we came up short. 3 | 4 | # Next Week 5 | Next week we plan on looking for someone again to test out our user tests on. We also plan on starting our progress report which is due the following Monday. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-6-Fall.md: -------------------------------------------------------------------------------- 1 | This week we finalized our requirements document. We met up a few times to finish the sections we hadn't finished last week and to revise the ones we had. Cramer and I worked on getting our hello world example to work with VSCode as well as resolve some issues Zach and Eric were having with GitHub and Windows path names being too long. We also met with our TA, Vee, to go over our progress. He also explained what a tech review was to us. 2 | 3 | Next week we have another meeting with Chris. We plan on having a few paper prototypes (or derivatives thereof) to show him as well as our hello world extension. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-6-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we sat down with a few people to go over our user tests before we went through the actual IRB approved tests. This way we could fix any mistakes we had in our tests. We also starting putting together our progress report and video. One thing we haven't done is nail down our expo pitch with needs to happen soon. Unfortunately we are pretty good at getting across what our extension does to other developers but not the average joe. Personally I'm also struggling on relating our extension to younger kids. 3 | 4 | # Next Week 5 | Next week we are going to wrap up our progress report on Monday and prepare for expo the rest of the week. I have full confidence in our ability to be prepared for expo by Friday. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-6-Winter.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | This week we updated a lot of our documents as per requested by Kevin including the Tech Review and the Design Document. This was good because enough had changed in our design that our old design document was out of date. This weekend, we sat down and refactored our entire extension. It is now more reliable and actually has more features than it had before we started this weekend. 3 | 4 | # Next Week 5 | Next week we will work on our Progress Report because it was extended a week by Kevin for us because we wanted to get our extension on the VSCode Extension Marketplace as soon as possible. We will also work on uploading our extension to the marketplace and finishing up the refactors by tomorrow evening. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-7-Fall.md: -------------------------------------------------------------------------------- 1 | This week I helped to create our "Hello World" extension in Visual Studio Code that would parse the directory in which the user was currently working and create an HTML document that listed all the files in their working directory. Our team also figured out how to take that HTML document and display it inline in the editor. We started working on it using JavaScript but we ultimately decided to go with TypeScript, which is Microsofts version of JavaScript, because almost all the examples of extensions used it. In the next few days we plan on finishing up our Technology Review. We have mostly been working in Visual Studio Code and JavaScript, but I think we should explore other options including other text editors such as Atom or Brackets. They are both similarly open sourced text editors. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-7-Spring.md: -------------------------------------------------------------------------------- 1 | # This Week 2 | Most of this week consisted of preparing for expo and then actually being at expo. We put the last final touches on our pitch and gave it all we had. 3 | 4 | # Expo 5 | Expo was great, we met a lot of people who were interested in our project and our tool. We got a few people who asked if we were looking for jobs after this term. Being recently accepted into grad school, I unfortunately had to say no to a few people but said I would reach out when I graduate. Eric I believe got a few peoples names. 6 | 7 | # A Retrospective 8 | If I were to redo this project from the beginning, I would definitely put more time into the planning stages as well as more communication with our client. I think with those two combined we could have developed less and designed more and turned out a better product as well as relieving some frustration along the way. One of the biggest things I learned was how to work in a group effectively while still maintaining friendships. That I think is a valuable skill I will use in the workplace in the future. I am proud of the product we turned out, I am more impressed by the logic behind it than the visual aspect of it, just because it is so adaptable. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-8-Fall.md: -------------------------------------------------------------------------------- 1 | This week we finished up our Tech Review document and figured out a lot of the technologies we will be using throughout our project. The main piece I will be in charge of for our product is the file parser. I learned through our tech review that using regular expressions, which was my original plan, probably won't be enough to parse through real world HTML code. For this reason I have decided we will need to write a Perl script and use some of the already built HTML parser modules to find the tags that we want to check for. One of the Perl parsers will also allow us to check against the W3C standards so we can flag the users code for where they essentially "broke the rules." This module will also allow us to turn it off and check against how most browsers actually render the code since how the browser renders the markup and how the W3C specifies it should be rendered are sometimes different. -------------------------------------------------------------------------------- /BlogPosts/Sam-Lichlyter-Update-Week-9-Fall.md: -------------------------------------------------------------------------------- 1 | This week being a long holiday weekend I didn't work on a whole lot beforehand. I do plan on looking over everything we need for the parser and how to build one. Also at a more basic level I plan on looking over some Perl tutorials to get a better handle on the language. 2 | 3 | Next week we plan on working on our Design Document and finishing it up as well as another meeting with our client. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-1-Spring.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week we met with out client to check in with our progress. We had a bit of a misunderstanding of work focus: we had been polishing off features whereas he wanted us to focus on polishing the UI. As such, we will meet again next week to check our progress again. Various features were worked on this week, mostly related to the UI. We created a number of event listeners that allow users to click on our node network and be directed to the corresponding line of code in their project. Additionally, we created a TypeScript grammar that will allow us to visualize our own project, as it is the main coding project we actually all work on day to day. 3 | 4 | ## Plans for Next Week 5 | We will continue polishing the UI to get it up to our client's expectations. We have a meeting with him on Tuesday to see if the work is to his liking. After that, we will see if there is time/resources available to conduct user testing. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-1-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did Over Break and Week 1: 2 | As of this week, our team is in a pretty good spot concerning work we've done so far and goals we're working on currently and in the future. Sam, Eric and I are all from the same town so we were able to meet up briefly at the beginning of break to determine what we wanted to accomplish. We essentially decided that we wanted each separate piece of our project to basically be in a working prototype state by the end of Week 1 of Winter Term. Each member of our team had previously undertaken a general concern/category within the project. We informed our other team member, Cramer, of our plans following the meeting. We then each made separate progress over the rest of the break. The UI, the data layer/transfer, and the file parser reached a working state during this time period. 3 | 4 | The team had scheduled a meeting with Chris Scaffidi (our client) for the end of Week 1, and our general hope was that we could have some of our project pieces complete and put together by that time. Unfortunately, the "assembly" process was much more time consuming than we initially anticipated, even after working a couple dozen hours between us during Week 1. Despite this, Chris was fairly happy with our progress so far and believed we were on track both time-wise and feature-wise. His goal for us was to have a prototype that we would be able to use by the end of February, and a prototype that other CS friends could use by the end of March. We believe these timelines align with Kevin's "alpha" and "beta" dates set on the course website. 5 | 6 | ##Plans For This Week: 7 | This week, we continue to make progress on each respective feature or function that seems the most relatively crucial to the project. I'm continuing to flesh out the parser->UI data layer so that more parser data can be transferred. We're in a spot where the whole team can work together towards commons goals, rather than individual ones as before break. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-10-Fall.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | The entirety of this week was spent completing the design document. We all met earlier in the week to define what each team member would write about. We each tackled the general scope of the components we discussed in our Tech Review last week. I covered the data handling portion, that is, the data structure, serialization of the data, and storage of the data into a JSON file. These components were introduced and discussed in light of their respective design viewpoints, according to the IEEE 1016-2009 document. Additionally, we met with our client Chris to discuss the progress we've made thus far, as well as our plan over winter break. 3 | 4 | ##Plans For Next Week 5 | During finals week, we plan to write our progress reports for the term and create a verbal presentation of those reports. We are confident that the report will be thoroughly completed by the due date on Wednesday. Post finals week, we will continue to work on our VS Code extension over the break, and plan to have a rough prototype with parsing and UI completed by the beginning of Winter term. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-10-Winter.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | We had two major goals we worked on this week: completing our preliminary Expo poster and finishing a number of UI features for our project. The poster had a bit of a rough start; we all did a part of the poster separately, then later realized that the whole thing was too wordy and not cohesive. We revamped the poster as a team, focusing more on why we did what we did rather than including so many technical details on how we did it. For the project itself, I worked on adding a sidebar window that will display an notifications or errors the parser finds for each node in the main UI. The visual elements are there, it's just down to getting the parser to generate the right data to populate the window. 3 | 4 | ## Plans For Next Week 5 | Next week we will each work on our individual progress reports as well as the team video report. It should be mostly the same as the one we did a few weeks ago for the midterm. We may make minor updates to the codebase as well. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-2-Spring.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week we finished up most of the UI changes we felt Chris cared about most (font, node hierarchy, readable notifications) and demoed it to him on Tuesday. He was satisfied with our progress and began the discussions about user testing. That will be our main focus outside of Expo going forward. We are writing questions to ask the users once they have tested our project that we will submit to the OSU IRB Monday. Additionally, we worked on our Capstone poster second draft. We are planning on capitalizing on the extra credit opportunity concerning the poster board by working with another team. 3 | 4 | ## Plans for Next Week 5 | Next week we will begin creating the tasks the users will perform in our study. We will also continue polishing our project to make sure it's totally ready. We will refer to Chris to make sure our study is sound. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-2-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week: 2 | This week the team met to see where our project stood, what functioned and what needed to function next. Eric continued to make progress on the Electron UI which displays each file in the project, while I continue to work on created the links between those files. By the end of the week, links between files were displayed visually in the electron UI. However, there most likely will need to be a rework of this functionality: the links are generated independently of the project files, which causes major id number incongruities for larger web project when parsed. 3 | 4 | ##Plans For Next Week: 5 | Going into the next week, I will work on reworking the link generation system in the parser. This may or may not be a large effort, but it may go more smoothly if I work with Sam to get the file data I need from the parser. Meanwhile, Cramer and Eric are starting to working on triggering the parser by a save operation within VS Code. Eric will have the UI update accordingly at the same time as the save action. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-3-Fall.md: -------------------------------------------------------------------------------- 1 | ### What We Did This Week 2 | This week was one of logistics and clarification. Sam set up our GitHub repo called Project Postal (a weird name, I know) and each of us made a few initial commits to it. I set up the Latex document for our problem statement, so we will have a .tex template file for future documents. We scheduled the meeting time with our TA, Vee, for Fridays at noon. We won't meet with him this week but will in week 4. We have also be in email contact with Prof. Scaffidi, our project sponsor. He has been clarifying some information for us as we wrote our problem statement. We had some initial confusion as to whether the research aspect of our project was the focus, or if the tool we would be developed would simply use principals of the IFT research. Turns out it's a little bit of both, but I think we all have a clearer understanding at the end of this week. Finally, this Friday we are having our first in-person meeting with Prof. Scaffidi to get the problem statement signed and some expectations established for this project. I may update this post if there is information of note from that meeting. 3 | 4 | ### Plans For Next Week 5 | For the class, we were asked to prepare our resumes to bring in, so I will be updated my existing resume this weekend. Besides that, we have no immediate instructions specifically related to our project. As such, we will do as instructed in class Tuesday. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-3-Spring.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week we submitted our user testing proposal off for IRB approval via Chris. This proposal included the questions we planned to ask our users and our own Human Subject certifications. Additionally, we further tweaked our project to make it completely testing ready. The team discussed the nature of the tasks we will ask users to carry out in order to test our project. These tasks should be finalized by next week. Lastly, we met as a team with Kirsten to receive feedback on our Expo poster and how we can explain our project more clearly. 3 | 4 | ## Plans For Next Week 5 | Next week we will make modifications to our poster according to the feedback we received, then send it off to Chris for final approval before Expo submission. Secondly, we plan to finalize our user testing plans as we wait for IRB approval to come back to us. Lastly, we'll check if there's any word on whether we have to do a midterm progress report again this term. If so, we will start on that. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-3-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week was a relatively slow week for most of the team. We met with Vee on Monday to discuss where we were on our progress and then met as a team afterward to see where each member was on their individual tasks. We are all content with the progress we've made so far, but all agree that February will require a bit more work time put in. We still aim to have a fully functional prototype by the end of February. 3 | 4 | ##Plans For Next Week 5 | Next week should see significantly more work done, as we're all pretty busy with other concerns this week and on the weekend. I plan to rework the creation of file nodes so that links will be correctly supported for Eric's UI, and I will work with Sam and the file parser to ensure this is done sustainably. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-4-Fall.md: -------------------------------------------------------------------------------- 1 | ###What We Did This Week 2 | This week our whole team met to discuss our problem statement revisions and to begin to think about what our requirements might look like. During the course of this meeting, we came to the conclusion that we would be better successful if we pivoted our tool towards two more specific categories: web developers and/or inexperienced developers. Previously we had aimed to tackle large scale projects with experienced developers, but we believe this would have been a problem for us time-wise and knowledge-wise. Additionally, it will be easier to test our tool with inexperienced developers (students) than more seasoned developers. We sent an email off to our client to notify him of our pivot (the details still meet all of his original requirements) and we hope and expect that he will approve them. 3 | 4 | The team also meet with our TA, Vee, for the first time this week. We all became acquainted and he informed us of what he expects from us. The meeting went well and he believed our project and team were all currently in a good spot. 5 | 6 | ###Plans For Next Week 7 | Next week we will finalize our problem statement and have it signed. The revisions will revolve around rewriting some of the specific terms to be in accordance with our pivot this last week, as well as adding citations to a source we had used for information. We will also begin and finish work on our requirements document, in accordance with the guidelines specified on the class website. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-4-Spring.md: -------------------------------------------------------------------------------- 1 | ## What we did this week 2 | This week the team finalized our expo poster and got client approval. It's been submitted to Kevin for a final check. The team also developed the tasks and questions we will use to have users test the effectiveness of our tool. We still await IRB approval. 3 | ## Plans for next week 4 | Next week will finalize any last changes before the code freeze. Additionally we will interview and carry out the the wired writing assignment for the class. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-4-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week the team met up and made some progress on each of the pieces we've tasked each other with going forward. Eric successfully launched our Electron UI window from the extension itself instead of the command line, serving as a major step forward for the UI. I continue to rework the Data Structure file node generation, which is conceptually proving more difficult than expected. I will work with Sam going forward to make sure the parser gives me the data I need. Cramer successfully got code highlighting working, a step in the right direction for our error management. We also had class this week which informed us of our upcoming progress report and OneNote tasks. 3 | 4 | ##Plans For Next Week 5 | I will set up OneNote for our "Engineering Notebook" and begin to compile the information we need to make our midterm progress report. I will also continue working on fixing Data Structure file node generation. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-5-Fall.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week the team completed the final version of our problem stated. We added a citations, subject headings, and revised a few lines concerning how we will test our software tool. We also began work on our requirements document. A rough draft has been submitted as of Friday, with the majority of the required sections within the document completed. We still need to nail down some specifics regarding the actual functions within our tool, as well as the operations the user will perform within our tool. 3 | 4 | We met with Vee this week and simply checked in our progress with him. There was nothing specific we needed to do coming away from that meeting, other than making general progress on our documents. 5 | 6 | ## Plans For Next Week 7 | We will continue to iterate through versions of our requirements document, completing and signing the final version by Friday 11/4. We will meet as a team to discuss the details still needed, and we will await and address and corrections as noted by the professors for this class. 8 | -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-5-Spring.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week the team wrapped up all code commits by the Monday night code freeze. We confirmed that we met all requirements and had fixed most bugs. We pushed these changes to our VS Code extension on Microsoft's extension marketplace. We are happy with the state our project is in and look forward to getting user feedback. Additionally, I submitted the team's expo poster by the deadline. 3 | 4 | Individually, I met up with my assigned WIRED article partner and interviewed him about his project. I reviewed his project in the style of a WIRED article and submitted it to Kirsten by Friday. 5 | 6 | ## Plans for Next Week 7 | Next week the team will get started on our midterm progress report. The only uncertainty left for us is when the IRB testing proposal will be approved and when we will conduct our user testing. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-5-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week I began to wrap up node creation in the data structure portion of our project. The display of href links between nodes has continued to be tricky, and isn't fully featured or functional yet, but I believe this can be added to over time. The rest of the team worked on their respective portions as well. 3 | 4 | ##Plans for Next Week 5 | Once we are in a good place concerning the actual project, the team will convene to work on revising the tech review and design document. Tech review should be short and sweet, while the design doc may take some serious reevaluation. Kevin allowed us an extension for our progress report in light of our attempt at a beta release by Week 7 instead of 11. The progress report will be completed by the end of Week 7 instead. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-6-Fall.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | Our team continued to work on finishing our requirements document this week. We met twice to complete the remaining sections we had not finished by last Friday, then went through and revised ambiguous language and poor grammar. Sam and Cramer also continued to fiddle with our "hello world" extension in visual studio code. This test extension will likely transition into our proof of concept code that Chris asked for by mid November. Finally, we met with Ve to check our requirements progress with him and get some information about the tech review document that we will write next week. 3 | 4 | ##Plans For Next Week 5 | According to the CS461 schedule, we will begin writing our tech review document next week. This appears to be both an individual and team document. As we clarify what technology we plan to use, we will also begin to seriously work on our proof on concept visualization extension. We hope to have this p-o-c complete in two weeks. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-6-Spring.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week the team started work on the progress report and our presentation video of the report. Because we have our previous reports to look back on, many of the problems and solutions we had in the past are easy to recall and report as resolved now. One difficulty we've having is narrowing down a unified pitch for Expo. Our project may make sense to other developers, but requires additional foreknowledge for the layman. We have to have that pitch nailed down this weekend. Additionally, we began testing our project on users (other computer science students we know) in preparation for our actual testing phase when we hear back from the IRB. 3 | 4 | ## Plans Next Week 5 | Next week we will wrap up our progress report and prepare to demo at Expo. I believe we will be fully ready by Friday to show off our years' work. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-6-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week the team spent most of our time working on revising our various documents. Minor revisions were made to update our design document, while some serious portions of the tech review had to be updated. I was in charge of setting up the One Note pages and formatting them correctly with all the needed content for our midterm progress report. Lastly, we scheduled a team code review for this weekend so each member can understand what everyone else is working on. Hopefully this leads to cleaner and more functional code overall. We plan to work a lot this weekend in order to reach our Beta release by next week so we can begin user testing. 3 | 4 | ##Plans For Next Week 5 | Next week we will finish our progress report presentation, as we received an extension on it. The extension is due to our accelerated work timeline for our actual project. If all major features are completed by the end of the week, we will begin working on implementing error identification and visualization for our user's projects. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-7-Fall.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | Each team member worked towards producing an initial prototype extension for VS Code to display all subfolders and files in a project directory. This "Hello World" example was shown to our client during a meeting with him Thursday. Chris seemed satisfied with our progress so far, but also gave a few suggestions as to what direction each team member should take going forward. My primary responsibility for now will be to research and start developing a method to serialize and store parsed project file data within some kind of database. This will make it so our project parser does not have to re-parse the entire code project every time a file is changed. This research goes hand in hand with the technology review document we started this week. Each member has divided up various areas of interest/technologies to research and report on for use in our project. We expect to finish this document over the weekend. 3 | 4 | ##Plans For Next Week 5 | Aside from finishing the tech review document, we will begin to take a hard look at the overall design of our extension. We will continue to meet and prototype as a team to get a better idea of how we want to implement various features, and will compile these decisions in our design document that is due finals week. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-7-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This last week was extremely busy. The team worked all weekend, essentially re-writing each component of our project, piece by piece so that they would support the required design specifications. Previously we had had a mostly working prototype, but could not build on it any further. The parser saw the most work re done, followed by the UI then the data layer. Ultimately, we achieved the milestone we wanted and published our extension to the VS Code extension marketplace, where users can now download and use it. Additionally, we completed our progress report, which we had received an extension on last week. 3 | 4 | ##Plans For Next Week 5 | Next week we will meet with our client, Prof Scaffidi to show him our progress and find out about the research component of this project. We will continue to test, bug fix and add features to the extension, particularly around error detection in a user's code. We also have class next week to learn about how to present our project at Expo. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-8-Fall.md: -------------------------------------------------------------------------------- 1 | ## What We Did This Week 2 | This week the team spent most of our time researching technologies and writing the tech review document. Due to some questions that were brought up from some of our research, we request a one day extension for the document, as we wanted to discuss them before submitting our final conclusions. My role in the document was related to data serialization, as parsed data from our clients' project would need to be stored temporarily in some form. We decided that form would be JSON, and we would use the JSON.stringify function to serialize our parser data. Once the document was complete, we spent the rest of our time laying out the basic framework for our design document. 3 | ## Plans for Next Week 4 | Next week, we plan to begin writing our design document or our progress report. Due to the short week, we're not sure what work will be completed before the break. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-8-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | We started the week of by meeting with or client, Chris Scaffidi. While he was happy about our progress, he still felt our project/UI wasn't to the stage of usefulness yet where someone (or us) would want to use it every day. So, our goal going forward is to move from the core visualization functionality, to making that visualization useful. This will include letting users jump to the point in code that each node represent and better visibility with node names and relationship. We will convene again this weekend to hash out much of the work that needs to be done. 3 | 4 | ##Plans for Next Week 5 | We will evaluate where the project is after our work/code review this weekend. We hope to solidify the rest of the core functionality of the parser and begin adding "gold plating" features (though at this point those features are more or less necessary). Our new major deadline is the end of the term when we hope to have our project in a "useful" state. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-9-Fall.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week the team discussed our schedule for completing the design document, the progress report, and what work we want to accomplish on our extension for the rest of the term. I also researched options for the visual portion of our progress report--I opted for OBS and PowerPoint as I am most familiar with those tools. Aside from this, nothing else was done due to the short week. 3 | ##Plans For Next Week 4 | Next week we will begin writing our design document. We will continue work on the prototype extension with the goal of having another feature done before our meeting with our client on Friday. -------------------------------------------------------------------------------- /BlogPosts/Zach-Schneider-Update-Week-9-Winter.md: -------------------------------------------------------------------------------- 1 | ##What We Did This Week 2 | This week each team member spent most of their time on individual work on adding features to the project. I worked on adding configuration buttons to the UI that allow the user to dynamically change the shape and physics of our information network. Later, I began working on the UI for the list of errors that our parsers will detect in each file. Lastly, the team began making preparations for our progress report video and preliminary poster due next week. 3 | 4 | ##Plans For Next Week 5 | Next week we will meet to put together the basic version of our Expo poster, deciding what points we want to hit and how we want to display our UI. Additionally, we will continue adding minor features to our project, such as the error list. -------------------------------------------------------------------------------- /BlogPosts/parsewiki.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | termArray = ['Fall','Winter','Spring'] 4 | nameArray = ['Cramer-Smith','Sam-Lichlyter','Zach-Schneider','Eric-Winkler'] 5 | weekArray = [1,2,3,4,5,6,7,8,9,10] 6 | weekArray = map(str, weekArray) #literally too lazy to type out strings 7 | 8 | outputfile = open('BlogPosts.txt', 'a') 9 | 10 | for termIndex, term in enumerate(termArray, start=0): 11 | for weekIndex, week in enumerate(weekArray, start=0): 12 | for nameIndex, name in enumerate(nameArray, start=0): 13 | fileString = "%s-Update-Week-%s-%s.md" % (nameArray[nameIndex], weekArray[weekIndex], termArray[termIndex]) 14 | try: 15 | inputfile = open(fileString, 'r') 16 | 17 | outputfile.write("\\subsubsection{Week %s: %s}" % (weekArray[weekIndex], nameArray[nameIndex].replace('-', ' '))) 18 | outputfile.write('\r\n') 19 | inputtext = inputfile.read().replace('# ', '').replace('#', '').replace('*', '').replace('\n', '\r\n') 20 | outputfile.write(inputtext) 21 | outputfile.write(' \\\\ \r\n ') 22 | 23 | inputfile.close() 24 | except IOError: 25 | print("File doesn't exist") 26 | outputfile.close() 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /DataStruct.json: -------------------------------------------------------------------------------- 1 | { 2 | "id":14, 3 | "level":0, 4 | "isSubContainer":false, 5 | "name":"header.php", 6 | "type":"php", 7 | "path":"c:\\Users\\Eric\\Desktop\\kingfish-master\\header.php", 8 | "links":[ 9 | { 10 | "id":42, 11 | "toFileStructid":56, 12 | "lineNumber":11 13 | }, 14 | { 15 | "id":43, 16 | "toFileStructid":57, 17 | "lineNumber":14 18 | }, 19 | { 20 | "id":44, 21 | "toFileStructid":58, 22 | "lineNumber":16 23 | } 24 | ], 25 | "subContainers":[ 26 | { 27 | "id":20, 28 | "toFileStructid":39, 29 | "lineNumber":18 30 | } 31 | ], 32 | "Notifications":[ 33 | { 34 | "id":20, 35 | "Error Message": "Improper use of 'Hello World', 36 | "lineNumber":18, 37 | "charNum":2 38 | } 39 | ] 40 | }, 41 | -------------------------------------------------------------------------------- /DataStructmockUp.txt: -------------------------------------------------------------------------------- 1 | Container{ //Node in the file map or sub container of file 2 | int id; 3 | int level; //0 == top level directory, 1 next level down 4 | 5 | bool isSubContainer; //is this a file/directory or a subcontainer (div, class, ect.) 6 | 7 | string name; //file name with file extension or subFileStruct name 8 | string type; //file type (html, png, directory, external reference... 9 | 10 | string path; 11 | subContainers 12 | [{ 13 | int GlobalId 14 | int "to" NodeID 15 | int lineNumber 16 | }]; links to subcontainers belonging to this node 17 | 18 | links 19 | [{ 20 | int GlobalId 21 | int "to" NodeID 22 | int lineNumber 23 | }]; //links to other file containers 24 | 25 | notifications 26 | [{ 27 | int id; 28 | int lineNumber; 29 | string message; 30 | }]; 31 | } 32 | -------------------------------------------------------------------------------- /DesignDocument/design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/design.pdf -------------------------------------------------------------------------------- /DesignDocument/img/CompositionUML.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/CompositionUML.PNG -------------------------------------------------------------------------------- /DesignDocument/img/CompositionUMLEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/CompositionUMLEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/img/CompositionUMLEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/CompositionUMLEPS.eps -------------------------------------------------------------------------------- /DesignDocument/img/InformationERD.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InformationERD.PNG -------------------------------------------------------------------------------- /DesignDocument/img/InformationERDEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InformationERDEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /DesignDocument/img/InterfaceUML.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InterfaceUML.PNG -------------------------------------------------------------------------------- /DesignDocument/img/InterfaceUMLEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InterfaceUMLEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/img/InterfaceUMLEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/InterfaceUMLEPS.eps -------------------------------------------------------------------------------- /DesignDocument/img/UIMockup.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/UIMockup.PNG -------------------------------------------------------------------------------- /DesignDocument/img/UIMockupEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/UIMockupEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/design.pdf -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/CompositionUML.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/CompositionUML.PNG -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/CompositionUMLEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/CompositionUMLEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/CompositionUMLEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/CompositionUMLEPS.eps -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InformationERD.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InformationERD.PNG -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InformationERDEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InformationERDEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InterfaceUML.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InterfaceUML.PNG -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InterfaceUMLEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InterfaceUMLEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/InterfaceUMLEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/InterfaceUMLEPS.eps -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/UIMockup.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/UIMockup.PNG -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/UIMockupEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/UIMockupEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /DesignDocument/revision_02142017/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/DesignDocument/revision_02142017/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /ElectronTest/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible Node.js debug attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "program": "${workspaceRoot}/app.js", 12 | "cwd": "${workspaceRoot}" 13 | }, 14 | { 15 | "type": "node", 16 | "request": "attach", 17 | "name": "Attach to Process", 18 | "port": 5858 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /ElectronTest/App/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | -------------------------------------------------------------------------------- /ElectronTest/App/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible Node.js debug attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "program": "${workspaceRoot}\\main.js", 12 | "cwd": "${workspaceRoot}" 13 | }, 14 | { 15 | "type": "node", 16 | "request": "attach", 17 | "name": "Attach to Process", 18 | "port": 5858 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /ElectronTest/App/DataStruct.json: -------------------------------------------------------------------------------- 1 | {"FileData": 2 | { 3 | "FileStructs": 4 | [ 5 | { 6 | "id": 0, 7 | "level": 0, 8 | "name": "index.html", 9 | "type": "html", 10 | 11 | "subFileStructs": 12 | [ 13 | {"FileStructid": 1} 14 | ], 15 | 16 | "links": 17 | [ 18 | {"FileStructid": 7} 19 | ], 20 | 21 | "errors": 22 | [ 23 | {"ErrorStructid": "e11"}, 24 | {"ErrorStructid": "e16"}, 25 | {"ErrorStructid": "e17"} 26 | ] 27 | }, 28 | 29 | { 30 | "id": 7, 31 | "level": 0, 32 | "name": "test.html", 33 | "type": "html", 34 | 35 | "subFileStructs": 36 | [ 37 | ], 38 | 39 | "links": 40 | [ 41 | {"FileStructid": 0}, 42 | {"FileStructid": 11} 43 | ], 44 | 45 | "errors": 46 | [ 47 | {"ErrorStructid": "e42"}, 48 | {"ErrorStructid": "e43"}, 49 | {"ErrorStructid": "e44"} 50 | ] 51 | }, 52 | 53 | { 54 | "id": 11, 55 | "level": 0, 56 | "name": "Thing.jpeg", 57 | "type": "jpeg", 58 | 59 | "subFileStructs": 60 | [ 61 | ], 62 | 63 | "links": 64 | [ 65 | ], 66 | 67 | "errors": 68 | [ 69 | ] 70 | } 71 | ], 72 | 73 | 74 | "ErrorStruct": 75 | { 76 | "id": "e11", 77 | "lineNumber": 254, 78 | "message": "You forgot a closing bracket: >" 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /ElectronTest/App/css/styles.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin:0; 3 | padding:0; 4 | } 5 | 6 | html{ 7 | background: #14243d; 8 | background: radial-gradient(ellipse at center, #14243d 0%,#030611 100%); 9 | position: absolute; 10 | top:0; 11 | left:0; 12 | width:100%; 13 | height:100%; 14 | } 15 | 16 | body{ 17 | font: 14px/1.5 Arial, Helvetica, sans-serif; 18 | color:#fff; 19 | } 20 | 21 | a, a:visited, a:hover{ 22 | color:#fff; 23 | text-decoration: none; 24 | } 25 | 26 | 27 | /* The cover flow slider */ 28 | 29 | .flipster { 30 | margin-top:120px; 31 | } 32 | 33 | .flipster ul li { 34 | text-align: center; 35 | } 36 | 37 | .flipster ul li a { 38 | text-align: center; 39 | } 40 | 41 | .flipster ul li a:after{ 42 | content:'oo'; 43 | letter-spacing: -2px; 44 | font-size: 12px; 45 | color:orange; 46 | margin-left:5px; 47 | font-weight: bold; 48 | } 49 | 50 | .flip-item img{ 51 | margin-bottom: 10px; 52 | } 53 | 54 | /* Stats */ 55 | 56 | .stats{ 57 | text-align: center; 58 | margin-top: 80px; 59 | color: #8C91A0; 60 | font-size: 13px; 61 | } 62 | 63 | .stats span{ 64 | font-weight: bold; 65 | color: #A2A9BD; 66 | margin-right: 10px; 67 | } -------------------------------------------------------------------------------- /ElectronTest/App/js/script.js: -------------------------------------------------------------------------------- 1 | // Mixing jQuery and Node.js code in the same file? Yes please! 2 | 3 | $(function(){ 4 | 5 | // Display some statistics about this computer, using node's os module. 6 | 7 | var os = require('os'); 8 | var prettyBytes = require('pretty-bytes'); 9 | 10 | $('.stats').append('Number of cpu cores: ' + os.cpus().length + ''); 11 | $('.stats').append('Free memory: ' + prettyBytes(os.freemem())+ ''); 12 | 13 | // Electron's UI library. We will need it for later. 14 | 15 | var shell = require('shell'); 16 | 17 | 18 | // Fetch the recent posts on Tutorialzine. 19 | 20 | var ul = $('.flipster ul'); 21 | 22 | // The same-origin security policy doesn't apply to electron, so we can 23 | // send ajax request to other sites. Let's fetch Tutorialzine's rss feed: 24 | 25 | $.get('http://feeds.feedburner.com/Tutorialzine', function(response){ 26 | 27 | var rss = $(response); 28 | 29 | // Find all articles in the RSS feed: 30 | 31 | rss.find('item').each(function(){ 32 | var item = $(this); 33 | 34 | var content = item.find('encoded').html().split('')[0]+''; 35 | var urlRegex = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/g; 36 | 37 | // Fetch the first image of the article. 38 | var imageSource = content.match(urlRegex)[1]; 39 | 40 | 41 | // Create a li item for every article, and append it to the unordered list. 42 | 43 | var li = $('
  • '); 44 | 45 | li.find('a') 46 | .attr('href', item.find('link').text()) 47 | .text(item.find("title").text()); 48 | 49 | li.find('img').attr('src', imageSource); 50 | 51 | li.appendTo(ul); 52 | 53 | }); 54 | 55 | // Initialize the flipster plugin. 56 | 57 | $('.flipster').flipster({ 58 | style: 'carousel' 59 | }); 60 | 61 | // When an article is clicked, open the page in the system default browser. 62 | // Otherwise it would open it in the electron window which is not what we want. 63 | 64 | $('.flipster').on('click', 'a', function (e) { 65 | 66 | e.preventDefault(); 67 | 68 | // Open URL with default browser. 69 | 70 | shell.openExternal(e.target.href); 71 | 72 | }); 73 | 74 | }); 75 | 76 | }); -------------------------------------------------------------------------------- /ElectronTest/App/main.js: -------------------------------------------------------------------------------- 1 | var electron = require('electron'); // Module to control application life. 2 | var app = electron.app; 3 | var BrowserWindow = require('browser-window'); // Module to create native browser window. 4 | 5 | // Keep a global reference of the window object, if you don't, the window will 6 | // be closed automatically when the JavaScript object is garbage collected. 7 | var mainWindow = null; 8 | 9 | // Quit when all windows are closed. 10 | app.on('window-all-closed', function() { 11 | // On OS X it is common for applications and their menu bar 12 | // to stay active until the user quits explicitly with Cmd + Q 13 | if (process.platform != 'darwin') { 14 | app.quit(); 15 | } 16 | }); 17 | 18 | // This method will be called when Electron has finished 19 | // initialization and is ready to create browser windows. 20 | app.on('ready', function() { 21 | // Create the browser window. 22 | mainWindow = new BrowserWindow({width: 1800, height: 1000}); 23 | 24 | // and load the index.html of the app. 25 | mainWindow.loadURL('file://' + __dirname + '/index.html'); 26 | 27 | // Emitted when the window is closed. 28 | mainWindow.on('closed', function() { 29 | // Dereference the window object, usually you would store windows 30 | // in an array if your app supports multi windows, this is the time 31 | // when you should delete the corresponding element. 32 | mainWindow = null; 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /ElectronTest/App/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Postal", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "dependencies": { 7 | "electron-prebuilt": "^0.35.6", 8 | "pretty-bytes": "^2.0.1" 9 | }, 10 | "devDependencies": { 11 | "electron-prebuilt": "^0.35.2" 12 | }, 13 | "scripts": { 14 | "start": "electron main.js" 15 | }, 16 | "author": "", 17 | "license": "ISC" 18 | } 19 | -------------------------------------------------------------------------------- /ElectronTest/App/test.js: -------------------------------------------------------------------------------- 1 | nodesArray = []; 2 | edgesArray = []; 3 | edgesIDArray = []; 4 | errorsArray = []; 5 | errorsSizeRefArray = []; 6 | //globalJSON; 7 | 8 | var struct; 9 | var DataStruct; 10 | function ReadStructs(){ 11 | alert("reading struct"); 12 | fs = require('fs'); 13 | struct = JSON.parse(fs.readFileSync('DataStruct.json', 'utf8', function (err,data) { 14 | if (err) { 15 | console.log(err); 16 | return; 17 | } 18 | 19 | DataStruct = JSON.parse(data); 20 | 21 | })); 22 | } 23 | 24 | 25 | function GetByID(id){ 26 | alert("getting for id: " + id); 27 | var FileStructByID = Datastruct.FileData.FileStructs; 28 | 29 | for (var i = 0; i < FileStructByID.length; i++) { 30 | if (FileStructByID[i].id == id) { 31 | struct = FileStructByID[i]; 32 | return struct; 33 | } 34 | } 35 | } 36 | 37 | alert("test"); 38 | ReadStructs(); 39 | GetByID(7); 40 | alert("done"); 41 | 42 | -------------------------------------------------------------------------------- /FinalPresentations/Cramer_Final.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalPresentations/Cramer_Final.pptx -------------------------------------------------------------------------------- /FinalPresentations/EricWinklerFinalPresentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalPresentations/EricWinklerFinalPresentation.pptx -------------------------------------------------------------------------------- /FinalPresentations/SamLichlyter_FinalReport.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalPresentations/SamLichlyter_FinalReport.pptx -------------------------------------------------------------------------------- /FinalPresentations/Zach Final Capstone Presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalPresentations/Zach Final Capstone Presentation.pptx -------------------------------------------------------------------------------- /FinalReport/coverpage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/coverpage.pdf -------------------------------------------------------------------------------- /FinalReport/design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/design.pdf -------------------------------------------------------------------------------- /FinalReport/finalreport.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/finalreport.pdf -------------------------------------------------------------------------------- /FinalReport/img/CoverPage.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage.eps -------------------------------------------------------------------------------- /FinalReport/img/CoverPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage.png -------------------------------------------------------------------------------- /FinalReport/img/CoverPage.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage.psd -------------------------------------------------------------------------------- /FinalReport/img/CoverPage2.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage2.eps -------------------------------------------------------------------------------- /FinalReport/img/CoverPage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage2.png -------------------------------------------------------------------------------- /FinalReport/img/CoverPage2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage2.psd -------------------------------------------------------------------------------- /FinalReport/img/CoverPage3.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage3.eps -------------------------------------------------------------------------------- /FinalReport/img/CoverPage3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage3.png -------------------------------------------------------------------------------- /FinalReport/img/CoverPage3.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/CoverPage3.psd -------------------------------------------------------------------------------- /FinalReport/img/Gantt Flipped Bottom Half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/Gantt Flipped Bottom Half.png -------------------------------------------------------------------------------- /FinalReport/img/Gantt Flipped Top Half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/Gantt Flipped Top Half.png -------------------------------------------------------------------------------- /FinalReport/img/Gantt Flipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/Gantt Flipped.png -------------------------------------------------------------------------------- /FinalReport/img/Gantt.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/Gantt.eps -------------------------------------------------------------------------------- /FinalReport/img/Gantt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/Gantt.png -------------------------------------------------------------------------------- /FinalReport/img/GanttBottom-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/GanttBottom-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/GanttBottom.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/GanttBottom.eps -------------------------------------------------------------------------------- /FinalReport/img/GanttTop-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/GanttTop-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/GanttTop.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/GanttTop.eps -------------------------------------------------------------------------------- /FinalReport/img/InformationERDEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/InformationERDEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /FinalReport/img/MVCsimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/MVCsimple.png -------------------------------------------------------------------------------- /FinalReport/img/PostalNotification-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/PostalNotification-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/PostalUI-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/PostalUI-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/UIMockupEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/UIMockupEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /FinalReport/img/UpdatedDataStruct-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/UpdatedDataStruct-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/img/UpdatedDataStruct.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/UpdatedDataStruct.eps -------------------------------------------------------------------------------- /FinalReport/img/capstoneUI1-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/img/capstoneUI1-eps-converted-to.pdf -------------------------------------------------------------------------------- /FinalReport/requirements.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/requirements.pdf -------------------------------------------------------------------------------- /FinalReport/team38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/team38.pdf -------------------------------------------------------------------------------- /FinalReport/techreview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/FinalReport/techreview.pdf -------------------------------------------------------------------------------- /GetStructs.js: -------------------------------------------------------------------------------- 1 | var DataStruct; 2 | returnDataStruct(); 3 | function returnDataStruct(){ 4 | fs = require('fs') 5 | DataStruct = fs.readFileSync('DataStruct.json', 'utf8', function (err,data) { 6 | if (err) { 7 | return console.log(err); 8 | } 9 | var DataStructParse = JSON.parse(data); 10 | //console.log(DataStruct.FileData); //return this for all DataStruct info 11 | }); 12 | } 13 | console.log(DataStruct); 14 | 15 | -------------------------------------------------------------------------------- /IRB/8017_Scaffidi_consent_Apprvd_06022017.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/IRB/8017_Scaffidi_consent_Apprvd_06022017.pdf -------------------------------------------------------------------------------- /IRB/8017_Scaffidi_protocol_Apprvd_06022017.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/IRB/8017_Scaffidi_protocol_Apprvd_06022017.doc -------------------------------------------------------------------------------- /IRB/8017_Scaffidi_questionnaire_Apprvd_06022017.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/IRB/8017_Scaffidi_questionnaire_Apprvd_06022017.doc -------------------------------------------------------------------------------- /IRB/receipt.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/IRB/receipt.docx -------------------------------------------------------------------------------- /PosterBoard/team38_version1.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/PosterBoard/team38_version1.pptx -------------------------------------------------------------------------------- /PosterBoard/team38_version2.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/PosterBoard/team38_version2.pptx -------------------------------------------------------------------------------- /PosterBoard/team38_version3.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/PosterBoard/team38_version3.pptx -------------------------------------------------------------------------------- /PosterBoard/team38_version4.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/PosterBoard/team38_version4.pptx -------------------------------------------------------------------------------- /ProblemStatement/ProblemStatement.bib: -------------------------------------------------------------------------------- 1 | @Electronic{iftwiki, 2 | author = {T. Nabi and T. Sweeney and S. Lichlyter and D. Piorkowski and C. Scaffidi and M. Burnett and S. Fleming}, 3 | title = {Information {F}oraging {T}heory}, 4 | year = 2016, 5 | organization = {Oregon State University} 6 | } 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ProblemStatement/ProblemStatement.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProblemStatement/ProblemStatement.pdf -------------------------------------------------------------------------------- /ProgressReport/Progress-Report-Fall.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReport/Progress-Report-Fall.pptx -------------------------------------------------------------------------------- /ProgressReport/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReport/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /ProgressReport/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReport/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /ProgressReport/makefile: -------------------------------------------------------------------------------- 1 | LATEX = latex -shell-escape 2 | #BIBTEX = bibtex 3 | DVIPS = dvips 4 | DVIPDF = dvipdft 5 | XDVI = xdvi -gamma 4 6 | GH = gv 7 | 8 | #EXAMPLES = $(wildcard *.h) 9 | SRC := $(shell egrep -l '^[^%]*\\begin\{document\}' *.tex) 10 | TRG = $(SRC:%.tex=%.dvi) 11 | PSF = $(SRC:%.tex=%.ps) 12 | PDF = $(SRC:%.tex=%.pdf) 13 | 14 | pdf: $(PDF) 15 | 16 | ps: $(PSF) 17 | 18 | $(TRG): %.dvi: %.tex *.bib $(EXAMPLES) 19 | $(LATEX) $< 20 | # $(BIBTEX) $(<:%.tex=%) 21 | $(LATEX) $< 22 | $(LATEX) $< 23 | 24 | $(PSF):%.ps: %.dvi 25 | $(DVIPS) -R -Poutline -t letter $< -o $@ 26 | 27 | $(PDF): %.pdf: %.ps 28 | # $(DVIPDF) -o $@ $< 29 | ps2pdf $< 30 | 31 | show: $(TRG) 32 | @for i in $(TRG) ; do $(XDVI) $$i & done 33 | 34 | showps: $(PSF) 35 | @for i in $(PSF) ; do $(GH) $$i & done 36 | 37 | all: pdf 38 | 39 | clean: 40 | rm -f *.ps *.dvi *.out *.log *.aux *.bbl *.blg *.pyg 41 | 42 | .PHONY: all show clean ps pdf showps 43 | 44 | -------------------------------------------------------------------------------- /ProgressReport/progress.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReport/progress.pdf -------------------------------------------------------------------------------- /ProgressReportEndWinter/Progress-Report-EndWinter-team38.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportEndWinter/Progress-Report-EndWinter-team38.pptx -------------------------------------------------------------------------------- /ProgressReportMidSpring/Progress-Report-MidSpring-team38.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/Progress-Report-MidSpring-team38.pptx -------------------------------------------------------------------------------- /ProgressReportMidSpring/Progress-Report-MidSpring-team38.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/Progress-Report-MidSpring-team38.zip -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/InformationERDEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/InformationERDEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/PostalNotification-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/PostalNotification-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/PostalUI-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/PostalUI-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/UIMockupEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/UIMockupEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/UpdatedDataStruct-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/UpdatedDataStruct-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/UpdatedDataStruct.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/UpdatedDataStruct.eps -------------------------------------------------------------------------------- /ProgressReportMidSpring/img/capstoneUI1-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/img/capstoneUI1-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidSpring/progress-report-team38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidSpring/progress-report-team38.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/Progress-Report-MidWinter-team38-ppt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/Progress-Report-MidWinter-team38-ppt.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/Progress-Report-MidWinter-team38.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/Progress-Report-MidWinter-team38.pptx -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/InformationERDEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/InformationERDEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/InformationERDEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/InformationERDEPS.eps -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/UIMockupEPS-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/UIMockupEPS-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/UIMockupEPS.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/UIMockupEPS.eps -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/UpdatedDataStruct-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/UpdatedDataStruct-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/UpdatedDataStruct.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/UpdatedDataStruct.eps -------------------------------------------------------------------------------- /ProgressReportMidWinter/img/capstoneUI1-eps-converted-to.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/img/capstoneUI1-eps-converted-to.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/makefile: -------------------------------------------------------------------------------- 1 | LATEX = latex -shell-escape 2 | #BIBTEX = bibtex 3 | DVIPS = dvips 4 | DVIPDF = dvipdft 5 | XDVI = xdvi -gamma 4 6 | GH = gv 7 | 8 | #EXAMPLES = $(wildcard *.h) 9 | SRC := $(shell egrep -l '^[^%]*\\begin\{document\}' *.tex) 10 | TRG = $(SRC:%.tex=%.dvi) 11 | PSF = $(SRC:%.tex=%.ps) 12 | PDF = $(SRC:%.tex=%.pdf) 13 | 14 | pdf: $(PDF) 15 | 16 | ps: $(PSF) 17 | 18 | $(TRG): %.dvi: %.tex *.bib $(EXAMPLES) 19 | $(LATEX) $< 20 | # $(BIBTEX) $(<:%.tex=%) 21 | $(LATEX) $< 22 | $(LATEX) $< 23 | 24 | $(PSF):%.ps: %.dvi 25 | $(DVIPS) -R -Poutline -t letter $< -o $@ 26 | 27 | $(PDF): %.pdf: %.ps 28 | # $(DVIPDF) -o $@ $< 29 | ps2pdf $< 30 | 31 | show: $(TRG) 32 | @for i in $(TRG) ; do $(XDVI) $$i & done 33 | 34 | showps: $(PSF) 35 | @for i in $(PSF) ; do $(GH) $$i & done 36 | 37 | all: pdf 38 | 39 | clean: 40 | rm -f *.ps *.dvi *.out *.log *.aux *.bbl *.blg *.pyg 41 | 42 | .PHONY: all show clean ps pdf showps 43 | 44 | -------------------------------------------------------------------------------- /ProgressReportMidWinter/progress-report-team38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/progress-report-team38.pdf -------------------------------------------------------------------------------- /ProgressReportMidWinter/progress-report-team38.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/ProgressReportMidWinter/progress-report-team38.tar.bz2 -------------------------------------------------------------------------------- /Requirements/images/Digdown.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/images/Digdown.PNG -------------------------------------------------------------------------------- /Requirements/images/Filemap.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/images/Filemap.PNG -------------------------------------------------------------------------------- /Requirements/images/Links.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/images/Links.PNG -------------------------------------------------------------------------------- /Requirements/images/fileStructure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/images/fileStructure.png -------------------------------------------------------------------------------- /Requirements/images/gantt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/images/gantt.png -------------------------------------------------------------------------------- /Requirements/requirements.bib: -------------------------------------------------------------------------------- 1 | @Electronic{iftwiki, 2 | author = {T. Nabi and T. Sweeney and S. Lichlyter and D. Piorkowski and C. Scaffidi and M. Burnett and S. Fleming}, 3 | title = {Information {F}oraging {T}heory}, 4 | year = 2016, 5 | organization = {Oregon State University}, 6 | url = {http://research.engr.oregonstate.edu/ift/readonly.php} 7 | } 8 | @Electronic{xeroxift, 9 | author = {P. Pirolli and S. Card}, 10 | title = {Information {F}oraging in {I}nformation {A}ccess {E}nvironments}, 11 | year = 1995, 12 | organization = {Xerox Palo Alto Research Center}, 13 | url = {http://delivery.acm.org/10.1145/230000/223911/p51-pirolli.pdf} 14 | } 15 | @Electronic{w3, 16 | author = {{World Wide Web Consortium}}, 17 | title = {About {W3C}}, 18 | year = 2016, 19 | organization = {World Wide Web Consortium}, 20 | url = {https://www.w3.org/Consortium/} 21 | } 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Requirements/requirements.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/Requirements/requirements.pdf -------------------------------------------------------------------------------- /StructById.js: -------------------------------------------------------------------------------- 1 | var id = 7; 2 | var struct; 3 | readStructs(); 4 | 5 | function readStructs(){ 6 | fs = require('fs'); 7 | struct = JSON.parse(fs.readFileSync('DataStruct.json', 'utf8', function (err,data) { 8 | if (err) { 9 | console.log(err); 10 | return; 11 | } 12 | 13 | var DataStruct = JSON.parse(data); 14 | 15 | })); 16 | } 17 | 18 | function getByID(id){ 19 | var FileStructByID = struct.FileData.FileStructs; 20 | 21 | for (var i = 0; i < FileStructByID.length; i++) { 22 | if (FileStructByID[i].id == id) { 23 | struct = FileStructByID[i]; 24 | return struct; 25 | } 26 | } 27 | } 28 | getByID(id); 29 | console.log(struct); -------------------------------------------------------------------------------- /TechReview/revision_02142017/techreview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TechReview/revision_02142017/techreview.pdf -------------------------------------------------------------------------------- /TechReview/techreview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TechReview/techreview.pdf -------------------------------------------------------------------------------- /TestProjects/CS340/CS340_Final_Project_Website.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/CS340/CS340_Final_Project_Website.zip -------------------------------------------------------------------------------- /TestProjects/CS340/_header.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /TestProjects/CS340/directory/level1.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TestProjects/CS340/images/French_bayonet_charge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/CS340/images/French_bayonet_charge.jpg -------------------------------------------------------------------------------- /TestProjects/CS340/images/map-entente.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/CS340/images/map-entente.png -------------------------------------------------------------------------------- /TestProjects/CS340/index.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
    6 |
    7 |

    World War One Database

    8 |
    9 |
    10 | 11 |
    12 |
    13 |
    14 |

    Click a section button to learn about different WW1 Topics.

    15 |
    16 |
    Triple Entente
    17 |
    Central Powers
    18 |
    Battles List
    19 |
    Database Tables
    20 | href="fakeFile.php" 21 | href="fakeFile.php" 22 |
    23 |
    24 |
    25 | 26 | 27 |
    28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /TestProjects/CS340/style.css: -------------------------------------------------------------------------------- 1 | .btn-larger { 2 | font-size: 24px; 3 | padding-top: 20px; 4 | padding-right: 24px; 5 | padding-bottom: 20px; 6 | padding-left: 24px; 7 | } 8 | 9 | .center-block { 10 | margin-left: auto; 11 | margin-right: auto; 12 | } 13 | 14 | .center-block-left { 15 | margin-left: auto; 16 | margin-right: auto; 17 | float: left; 18 | } 19 | 20 | .center-block-right { 21 | margin-left: auto; 22 | margin-right: auto; 23 | float: right; 24 | } 25 | 26 | h1 { 27 | font-size: 48px; 28 | } 29 | 30 | p.large { 31 | font-size: 20px; 32 | } -------------------------------------------------------------------------------- /TestProjects/CS340/update_army.php: -------------------------------------------------------------------------------- 1 | prepare("INSERT INTO Army (Army_Country, Army_Leader, Manpower) VALUES(?,?,?) "); 4 | 5 | //Assign values from the POST inputs 6 | $Army_Country = htmlspecialchars($_REQUEST['Army_Country']); 7 | $Army_Leader = htmlspecialchars($_REQUEST['Army_Leader']); 8 | $Manpower = htmlspecialchars($_REQUEST['Manpower']); 9 | 10 | 11 | $sqlIn->bind_param("iii", $Army_Country, $Army_Leader, $Manpower); 12 | 13 | if(!$sqlIn){ 14 | echo "Bind failed"; 15 | } 16 | $sqlIn->execute(); 17 | if(!$sqlIn){ 18 | echo "Execute failed"; 19 | } 20 | 21 | $sqlIn->close(); 22 | 23 | 24 | ?> 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TestProjects/CS340/update_army_battles.php: -------------------------------------------------------------------------------- 1 | prepare("INSERT INTO Army_Battles (Army_ID, Battle_ID) VALUES(?,?) "); 4 | 5 | //Assign values from the POST inputs 6 | $Army_ID = htmlspecialchars($_REQUEST['Army_ID']); 7 | $Battle_ID = htmlspecialchars($_REQUEST['Battle_ID']); 8 | 9 | 10 | $sqlIn->bind_param("ii", $Army_ID, $Battle_ID); 11 | 12 | if(!$sqlIn){ 13 | echo "Bind failed"; 14 | } 15 | $sqlIn->execute(); 16 | if(!$sqlIn){ 17 | echo "Execute failed"; 18 | } 19 | 20 | $sqlIn->close(); 21 | 22 | 23 | ?> 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /TestProjects/CS340/update_battles.php: -------------------------------------------------------------------------------- 1 | prepare("INSERT INTO Battles (Battle_Name, Battle_Date, Location) VALUES(?,?,?) "); 4 | 5 | //Assign values from the POST inputs 6 | $Battle_Name = htmlspecialchars($_REQUEST['Battle_Name']); 7 | $Battle_Date = htmlspecialchars($_REQUEST['Battle_Date']); 8 | $Location = htmlspecialchars($_REQUEST['Location']); 9 | 10 | 11 | $sqlIn->bind_param("sss", $Battle_Name, $Battle_Date, $Location); 12 | 13 | if(!$sqlIn){ 14 | echo "Bind failed"; 15 | } 16 | $sqlIn->execute(); 17 | if(!$sqlIn){ 18 | echo "Execute failed"; 19 | } 20 | 21 | $sqlIn->close(); 22 | 23 | 24 | ?> 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TestProjects/CS340/update_country.php: -------------------------------------------------------------------------------- 1 | prepare("INSERT INTO Country (Country_Name, Country_Leader, Population, Alliance) VALUES(?,?,?,?) "); 4 | 5 | //Assign values from the POST inputs 6 | $Country_Name = htmlspecialchars($_REQUEST['Country_Name']); 7 | $Country_Leader = htmlspecialchars($_REQUEST['Country_Leader']); 8 | $Population = htmlspecialchars($_REQUEST['Population']); 9 | $Alliance = htmlspecialchars($_REQUEST['Alliance']); 10 | //If this was left blank, just assign it to Neutral 11 | if($Alliance == ""){ 12 | $Alliance = "Neutral"; 13 | } 14 | $sqlIn->bind_param("siis", $Country_Name, $Country_Leader, $Population, $Alliance); 15 | 16 | if(!$sqlIn){ 17 | echo "Bind failed"; 18 | } 19 | $sqlIn->execute(); 20 | if(!$sqlIn){ 21 | echo "Execute failed"; 22 | } 23 | 24 | $sqlIn->close(); 25 | 26 | 27 | ?> 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /TestProjects/CS340/update_leader.php: -------------------------------------------------------------------------------- 1 | prepare("INSERT INTO Leader (Leader_Fname, Leader_Lname, Title, Age) VALUES(?,?,?,?) "); 4 | 5 | //Assign values from the POST inputs 6 | $Leader_Fname = htmlspecialchars($_REQUEST['Leader_Fname']); 7 | $Leader_Lname = htmlspecialchars($_REQUEST['Leader_Lname']); 8 | $Title = htmlspecialchars($_REQUEST['Title']); 9 | $Age = htmlspecialchars($_REQUEST['Age']); 10 | 11 | $sqlIn->bind_param("sssi", $Leader_Fname, $Leader_Lname, $Title, $Age); 12 | 13 | if(!$sqlIn){ 14 | echo "Bind failed"; 15 | } 16 | $sqlIn->execute(); 17 | if(!$sqlIn){ 18 | echo "Execute failed"; 19 | } 20 | 21 | $sqlIn->close(); 22 | 23 | 24 | ?> 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} !-f 3 | RewriteRule ^([^\.]+)$ $1.php [NC,L] -------------------------------------------------------------------------------- /TestProjects/kingfish-master/404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

    Sorry, we couldn't find the page you're looking for.

    5 | 6 | 7 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/README.md: -------------------------------------------------------------------------------- 1 | ## Kingfish 2 | Website built for Kingfish lounge in Corvallis, OR 3 | 4 | TODO 5 | ==== 6 | - [ ] make website 7 | - [ ] users 8 | - [ ] homepage 9 | - [ ] menu (cocktails, bites) 10 | - [ ] events 11 | - [ ] Mike 12 | - [ ] change menu 13 | - [ ] do event handling 14 | 15 | REQUIREMENTS 16 | ------------ 17 | - [ ] map - location ([MapBox](http://mapbox.com)) 18 | - [x] menu: Cocktails, bites, neighborhood 19 | - [ ] borders around buttons? 20 | - [ ] neighborhood: show locations of other sites that around the vicinity 21 | - [ ] contact info 22 | - [ ] email: 23 | - [ ] phone: 24 | - [ ] address: 25 | - [ ] pictures of reservation space 26 | - [ ] hours: 27 | - [ ] Set google profile 28 | - [ ] Update menu System 29 | - [ ] Set up database 30 | - [ ] log in system 31 | - [ ] DBMS 32 | - [ ] event form 33 | - [ ] Event news/blog thing (MAYBE) 34 | 35 | Website Info 36 | ------- 37 | - kingfishlounge.com 38 | - dreamhost 39 | 40 | Gold Plating 41 | ------------ 42 | - animation 43 | - Instagram 44 | 45 | Design Palette 46 | -------------- 47 | - red orange 48 | - darker 49 | 50 | Graphics 51 | -------------- 52 | - [ ] Favicon 53 | - [ ] Pictures 54 | - [ ] Logos 55 | 56 | Documentation 57 | -------------------- 58 | - [ ] Directions to change pictures 59 | - [ ] Directions to change logo 60 | - [ ] Directions to update menu 61 | 62 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/admin.php: -------------------------------------------------------------------------------- 1 | 1800)) { 5 | // last request was longer than 30 minutes ago 6 | session_unset(); 7 | session_destroy(); 8 | } 9 | $_SESSION['LAST_ACTIVITY'] = time(); 10 | 11 | // If you've logged in before, you will be redirected 12 | if (isset($_SESSION["username"]) && isset($_SESSION["uid"]) && !empty($_SESSION["username"]) && !empty($_SESSION["uid"])) { 13 | header("Location: editing.php?menu=bites&action=editing"); 14 | } 15 | // END WARNING 16 | 17 | if (isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password'])) { 18 | 19 | $username = mysqli_real_escape_string($mysqli, strip_tags($_POST["username"])); 20 | $password = mysqli_real_escape_string($mysqli, strip_tags($_POST["password"])); 21 | 22 | $sql = "SELECT uid, username, password FROM users WHERE username=? LIMIT 1"; 23 | $stmt = mysqli_prepare($mysqli, $sql); 24 | mysqli_stmt_bind_param($stmt, 's', $username); 25 | mysqli_stmt_execute($stmt); 26 | mysqli_stmt_bind_result($stmt, $uid, $dbusername, $dbpassword); 27 | mysqli_stmt_fetch($stmt); 28 | 29 | //check username and password are correct 30 | if ($username == $dbusername && password_verify($password."kingfisher", $dbpassword)) { 31 | //set session variables 32 | $_SESSION['username'] = $username; 33 | $_SESSION['uid'] = $uid; 34 | 35 | //now redirect user 36 | header("Location: editing.php?menu=bites&action=editing"); 37 | } else { 38 | die( "

    Username/password not found. Please try again.

    " ); 39 | } 40 | } 41 | 42 | ?> 43 | 44 |

    Admin menu

    45 |
    46 |

    Username:

    47 |

    Password:

    48 | 49 |
    50 | 51 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Kingfish Lounge 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 22 | 23 | 24 | 25 |
    26 | 47 |
    48 |
    49 |
    50 | 51 |
    -------------------------------------------------------------------------------- /TestProjects/kingfish-master/humans.txt: -------------------------------------------------------------------------------- 1 | # humanstxt.org/ 2 | # The humans responsible & technology colophon 3 | 4 | # TEAM 5 | 6 | Samuel Lichlyter -- Developer -- @slichlyter12 -- lichlyts@oregonstate.edu 7 | Cramer Smith -- Developer -- @TheCmar7 -- cramer.s.smith@gmail.com 8 | Eric Winkler -- Developer -- @Doc_Spaceman -- winkleer@oregonstate.edu 9 | 10 | # THANKS 11 | Zach, for the only one who actually looked at the final release 12 | 13 | # TECHNOLOGY COLOPHON 14 | 15 | HTML5, CSS3 16 | jQuery 17 | Bootstrap 18 | 19 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/img/bar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/kingfish-master/img/bar.jpg -------------------------------------------------------------------------------- /TestProjects/kingfish-master/img/landinglogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/kingfish-master/img/landinglogo.png -------------------------------------------------------------------------------- /TestProjects/kingfish-master/img/lights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/kingfish-master/img/lights.png -------------------------------------------------------------------------------- /TestProjects/kingfish-master/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/js/map.js: -------------------------------------------------------------------------------- 1 | // Provide your access token 2 | L.mapbox.accessToken = 'pk.eyJ1IjoibGljayIsImEiOiI0MjQ3YjI2NGVjY2IyYzVkZTU2ODk4MzhlNTJlNTk5MyJ9.aMrRUwEV0A2QYoGUlAk1Jw'; 3 | // Create a map in the div #map 4 | L.mapbox.map('map', 'lick.pj0o7dkc'); -------------------------------------------------------------------------------- /TestProjects/kingfish-master/menu.php: -------------------------------------------------------------------------------- 1 |
    ?> 2 | 17 | 18 |
    19 | 20 | "; 25 | while ($row = mysqli_fetch_assoc($query)) { 26 | $name = mysqli_real_escape_string($mysqli, strip_tags($row['name'])); 27 | $desc = mysqli_real_escape_string($mysqli, strip_tags($row['desc'])); 28 | $price = mysqli_real_escape_string($mysqli, strip_tags($row['price'])); 29 | echo ""; 30 | if ($desc == NULL) { 31 | echo "".stripslashes($name)."$$price"; 32 | } else { 33 | echo "".stripslashes($name)."".stripslashes($desc)."$$price"; 34 | } 35 | echo ""; 36 | } 37 | echo ""; 38 | } 39 | ?> 40 |
    41 | (class='content') 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /TestProjects/kingfish-master/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/kingfish-master/robots.txt -------------------------------------------------------------------------------- /TestProjects/postal/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | node_modules 3 | postal.json 4 | *.vsix 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /TestProjects/postal/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch UI", 7 | "type": "node", 8 | "request": "launch", 9 | "program": "${workspaceRoot}/lib/app/main.js", 10 | "stopOnEntry": false, 11 | "args": [], 12 | "cwd": "${workspaceRoot}/lib/app/", 13 | "runtimeExecutable": "${workspaceRoot}/lib/app/node_modules/.bin/electron.cmd", 14 | "runtimeArgs": [ 15 | ".", 16 | "--enable-logging" 17 | ], 18 | "env": {}, 19 | "externalConsole": false, 20 | "sourceMaps": false, 21 | "outDir": null 22 | }, 23 | { 24 | "name": "Launch Extension", 25 | "type": "extensionHost", 26 | "request": "launch", 27 | "runtimeExecutable": "${execPath}", 28 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], 29 | "stopOnEntry": false, 30 | "sourceMaps": true, 31 | "outDir": "${workspaceRoot}/out/src", 32 | "preLaunchTask": "npm" 33 | }, 34 | { 35 | "name": "Launch Tests", 36 | "type": "extensionHost", 37 | "request": "launch", 38 | "runtimeExecutable": "${execPath}", 39 | "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ], 40 | "stopOnEntry": false, 41 | "sourceMaps": true, 42 | "outDir": "${workspaceRoot}/out/test", 43 | "preLaunchTask": "npm" 44 | } 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /TestProjects/postal/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | "typescript.tsdk": "./node_modules/typescript/lib" // we want to use the TS server from our node_modules folder to control its version 10 | } -------------------------------------------------------------------------------- /TestProjects/postal/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // Available variables which can be used inside of strings. 2 | // ${workspaceRoot}: the root folder of the team 3 | // ${file}: the current opened file 4 | // ${fileBasename}: the current opened file's basename 5 | // ${fileDirname}: the current opened file's dirname 6 | // ${fileExtname}: the current opened file's extension 7 | // ${cwd}: the current working directory of the spawned process 8 | 9 | // A task runner that calls a custom npm script that compiles the extension. 10 | { 11 | "version": "0.1.0", 12 | 13 | // we want to run npm 14 | "command": "npm", 15 | 16 | // the command is a shell script 17 | "isShellCommand": true, 18 | 19 | // show the output window only if unrecognized errors occur. 20 | "showOutput": "silent", 21 | 22 | // we run the custom script "compile" as defined in package.json 23 | "args": ["run", "compile", "--loglevel", "silent"], 24 | 25 | // The tsc compiler is started in watching mode 26 | "isWatching": true, 27 | 28 | // use the standard tsc in watch mode problem matcher to find compile problems in the output. 29 | "problemMatcher": "$tsc-watch" 30 | } -------------------------------------------------------------------------------- /TestProjects/postal/.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | out/test/** 4 | test/** 5 | src/** 6 | **/*.map 7 | .gitignore 8 | tsconfig.json 9 | vsc-extension-quickstart.md 10 | *.tex 11 | *.ts 12 | node_modules/** 13 | lib/app/node_modules/** 14 | -------------------------------------------------------------------------------- /TestProjects/postal/README.md: -------------------------------------------------------------------------------- 1 | # Postal 2 | 3 | The Postal extension is being designed to allow developers to more quickly search through and visualize their projects. 4 | Postal creates a visualization of the users project directory in an Electron window that shows files and subcomponents of those files as nodes and the links between them. 5 | 6 | Postal is currently under heavy active development. 7 | Expect new releases often within the following months of release. 8 | 9 | Our final goal of the project is to allow users to easily tune the visualization of their project through the use of the grammars.json file. 10 | We also plan to add functionality to display user-defined errors within the visualization window. 11 | 12 | ![File Map Example](./images/filemap.png) 13 | 14 | 15 | ## Features 16 | * Generate a visualization of the users project directory 17 | * Generate subcomponents of files based on parsing behaviors defined in the user editable file grammars.json 18 | * Current options include tagged projects (i.e. HTML) and links (hrefs within HTML) 19 | 20 | ### Notes: 21 | * This is an early release of Postal (alpha build) 22 | * Several features are not yet complete and we expect buggy behavior 23 | * (Use at your own risk, and/or frustration) 24 | * We're just a humble group of wannabe college programmers, all feed-back and critisism welcome! 25 | 26 | ## Requirements 27 | * [NodeJS](https://nodejs.org/en/) (Version 6.10.0 or higher) 28 | 29 | ## Installation 30 | You may need to run `npm install` in Terminal or PowerShell in the following directories: 31 | 32 | * `~/.vscode/extensions/postal-team.postal-$version/` 33 | * `~/.vscode/extensions/postal-team.postal-$version/lib/app` 34 | 35 | ## Usage 36 | * Launch Postal by running Postal in the command pallette, this will parse the project directory you have open in VSCode. This will also open a UI. 37 | * Double-click a node in the UI to expand a subcomponents of that node, by default this will only work for HTML and PHP files. Specifically divs and body tags. 38 | 39 | ## Known Issues 40 | 41 | * Parsing on large projects (thousands of files) takes a while, but will (probably) finish around 30 seconds 42 | 43 | ## Release Notes 44 | 45 | ### 0.1.3 46 | * Fixed bug causing the file map to not appear after its first run 47 | 48 | ### 0.1.2 49 | * Fixed installation errors 50 | 51 | ### 0.1.0 52 | * Initial Release (have fun!) 53 | -------------------------------------------------------------------------------- /TestProjects/postal/images/filemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/postal/images/filemap.png -------------------------------------------------------------------------------- /TestProjects/postal/images/postalLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/postal/images/postalLogo.png -------------------------------------------------------------------------------- /TestProjects/postal/lib/app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /TestProjects/postal/lib/app/FileMap.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Network | Basic usage 8 | 9 | 10 | 11 | 12 | 13 | 14 |
    15 | 16 | 17 | 18 | 19 | 20 | 21 |
    22 | 23 | 24 | 25 |
    26 |

    Notifications

    27 | 31 |
      32 |
      33 |
      34 |

      Legend

      35 | 36 | 37 | File Links 38 | 39 | File Hierarchy 40 | 41 | 42 |
      43 | 44 |
      45 | 46 |
      47 | 48 |
      49 |
      50 |
      
      51 | 
      52 | 
      53 |   
      56 |   
      57 |   
      58 |   
      59 |   
      60 | 
      61 | 
      62 | 
      63 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/lib/app/LinkManager.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | module.exports = class LinkManager {
       4 |     
       5 | 
       6 |     constructor(links) {
       7 |         this.length = 0;
       8 |         this.randomAccessLinks = [];
       9 | 
      10 |         var length = 0;
      11 | 
      12 |         for (var i = 0; i < links.length; i++) {
      13 |             length++;
      14 |             this.randomAccessLinks[links[i].id] = links[i];
      15 |         }
      16 | 
      17 |         this.length = length;
      18 |     }
      19 |     
      20 |     getCondensedLinks() {
      21 |         var condensedLinks = [];
      22 |         for(var i = 0; i < this.randomAccessLinks.length; i++) {
      23 |             if (this.randomAccessLinks[i] != undefined) {
      24 |                 condensedLinks.push(this.randomAccessLinks[i]);
      25 |             }
      26 |         }
      27 | 
      28 |         return condensedLinks;
      29 |     }
      30 | 
      31 |     getLinkByID(linkID) {
      32 |         if(linkID >= this.randomAccessLinks.length){
      33 |             return null;
      34 |         }
      35 |         return this.randomAccessLinks[linkID];
      36 |     }
      37 | 
      38 |     setClusterFromByID(linkID, newFrom) {
      39 |         this.randomAccessLinks[linkID].clusterFrom = newFrom;
      40 |     }
      41 |     setClusterToByID(linkID, newTo) {
      42 |         this.randomAccessLinks[linkID].clusterTo = newTo;
      43 |     }
      44 | 
      45 |     setEnabledByID(linkID, isEnabled) {
      46 |         this.randomAccessLinks[linkID].isEnabled = isEnabled;
      47 |     }
      48 | 
      49 |     getLength() {
      50 |         return this.length;
      51 |     }
      52 | 
      53 | }
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/lib/app/main.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | const electron = require('electron')
       4 |     // Module to control application life.
       5 | const app = electron.app
       6 |     // Module to create native browser window.
       7 | const BrowserWindow = electron.BrowserWindow
       8 | 
       9 | const path = require('path')
      10 | const url = require('url')
      11 | 
      12 | const ipc = electron.ipcMain;
      13 | 
      14 | // Keep a global reference of the window object, if you don't, the window will
      15 | // be closed automatically when the JavaScript object is garbage collected.
      16 | let mainWindow
      17 | 
      18 | function createWindow() {
      19 |     // Create the browser window.
      20 |     mainWindow = new BrowserWindow({
      21 |             width: 1200,
      22 |             height: 800,
      23 |             frame: false,
      24 |             resizable: false
      25 |         }) // and load the index.html of the app.
      26 |     mainWindow.loadURL(url.format({
      27 |             pathname: path.join(__dirname, 'FileMap.html'),
      28 |             protocol: 'file:',
      29 |             slashes: true
      30 |         }))
      31 |         //mainWindow.openDevTools();
      32 | 
      33 |     // Emitted when the window is closed.
      34 |     mainWindow.on('closed', function() {
      35 |         // Dereference the window object, usually you would store windows
      36 |         // in an array if your app supports multi windows, this is the time
      37 |         // when you should delete the corresponding element.
      38 |         mainWindow = null
      39 |     })
      40 | 
      41 | }
      42 | 
      43 | // This method will be called when Electron has finished
      44 | // initialization and is ready to create browser windows.
      45 | // Some APIs can only be used after this event occurs.
      46 | app.on('ready', createWindow);
      47 | // Quit when all windows are closed.
      48 | app.on('window-all-closed', app.quit);
      49 | 
      50 | 
      51 | // On OS X it is common for applications and their menu bar
      52 | // to stay active until the user quits explicitly with Cmd + Q
      53 | // if (process.platform !== 'darwin') {
      54 | //   app.on('window-all-closed', app.quit);
      55 | // }
      56 | //})
      57 | 
      58 | app.on('activate', function() {
      59 |     // On OS X it's common to re-create a window in the app when the
      60 |     // dock icon is clicked and there are no other windows open.
      61 |     if (mainWindow === null) {
      62 |         createWindow()
      63 |     }
      64 | })
      65 | 
      66 | 
      67 | // In this file you can include the rest of your app's specific main process
      68 | // code. You can also put them in separate files and require them here.
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/lib/app/package.json:
      --------------------------------------------------------------------------------
       1 | {
       2 |   "name": "postal_filemap",
       3 |   "version": "1.0.0",
       4 |   "description": "FileMap GUI for Postal",
       5 |   "main": "main.js",
       6 |   "scripts": {
       7 |     "start": "electron main.js"
       8 |   },
       9 |   "keywords": [
      10 |   ],
      11 |   "devDependencies": {
      12 |     "electron": "^1.4.1"    
      13 |   },
      14 |   "dependencies": {    
      15 |     "electron": "^1.4.14",
      16 |     "process-bridge": "^0.3.6"
      17 |   },
      18 |   "author": "Winkleer",
      19 |   "license": "CC0-1.0"
      20 | }
      21 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/lib/controller.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | const ipcClient = require('node-ipc') 
       4 | 
       5 | var processBridge;
       6 | 
       7 | function OpenUI(command, formatId) {
       8 |   
       9 |   if (!processBridge) {
      10 |     processBridge = require('process-bridge');
      11 |     delete process.env.ELECTRON_RUN_AS_NODE;
      12 |     delete process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE;
      13 |     process.env.ELECTRON_NO_ATTACH_CONSOLE = true;
      14 |   }
      15 |   
      16 |   try {
      17 |     processBridge.sendRequest({
      18 |       command: command,
      19 |       value: command === 'pick' ? orgColor :
      20 |         selections.map(selection => textEditor.document.getText(selection)), // convert
      21 |       formatId: formatId, // convert
      22 |       form: config.get('pickerForm'),
      23 |       storeDir: config.get('storeDir'),
      24 |       formatsOrder: config.get('formatsOrder') // pick
      25 |     }, ARGS, (error, message) => {
      26 |       showMessage(false);
      27 |       
      28 |       if (error) {
      29 |         if (error.isRetried) {
      30 |           console.warn('Retry (' + error + ')');
      31 |           showMessage('$(watch)\tPlease wait a while for setting up the extension...');
      32 |           return;
      33 |         }
      34 |         console.error(error);
      35 |         return;
      36 |       }
      37 |     },
      38 |     () => { showMessage(false); },
      39 |     stderr => { console.warn('[STDERR]: ' + stderr); return true; });
      40 |     } 
      41 |     
      42 |     catch (error) {
      43 |       console.error(error);
      44 |     return;
      45 |   }
      46 | }
      47 | 
      48 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/src/DataStruct.json:
      --------------------------------------------------------------------------------
      1 | {"FileData":{"FileStructs":[{"id":0,"level":0,"name":"dirStructure.html","type":"html","links":[]},{"id":1,"level":0,"name":"_header.php","type":"php","links":[]},{"id":2,"level":0,"name":"battles.php","type":"php","links":[]},{"id":3,"level":0,"name":"central.php","type":"php","links":[]},{"id":4,"level":0,"name":"entente.php","type":"php","links":[]},{"id":5,"level":0,"name":"index.php","type":"php","links":[]},{"id":6,"level":0,"name":"tables.php","type":"php","links":[]},{"id":7,"level":0,"name":"update_army.php","type":"php","links":[]},{"id":8,"level":0,"name":"update_army_battles.php","type":"php","links":[]},{"id":9,"level":0,"name":"update_battles.php","type":"php","links":[]},{"id":10,"level":0,"name":"update_country.php","type":"php","links":[]},{"id":11,"level":0,"name":"update_leader.php","type":"php","links":[]}],"ErrorStucts":[]}}
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/src/extension.ts:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | // The module 'vscode' contains the VS Code extensibility API
       3 | // Import the module and reference it with the alias vscode in your code below
       4 | import * as vscode from 'vscode';
       5 | import * as path from 'path';
       6 | import { spawn } from 'child_process';
       7 | import { Controller } from './controller';
       8 | 
       9 | var isWin = /^win/.test(process.platform);
      10 | // Making a 'process bridge' 
      11 | var ipc = require('node-ipc'); 
      12 | 
      13 | 
      14 | // this method is called when your extension is activated
      15 | // your extension is activated the very first time the command is executed
      16 | export function activate(context: vscode.ExtensionContext) {
      17 | 
      18 |     let controller = new Controller();
      19 | 
      20 |     // The command has been defined in the package.json file
      21 |     // Now provide the implementation of the command with  registerCommand
      22 |     // The commandId parameter must match the command field in package.json
      23 |     let parse = vscode.commands.registerCommand('extension.parse', () => {
      24 | 
      25 |         //NEW PARSER STUFF
      26 |         controller.buildDataStructure();
      27 | 
      28 |         // Launch UI in electron
      29 |         controller.launchUI();
      30 |     });
      31 |     
      32 |     // We can get rid of this stuff later. I am testing shtuff -Cramer
      33 |     let testing = vscode.commands.registerCommand('extension.error', () => {
      34 |         // controller.jumpToFilesLine("/Users/TheCmar7/Developer/kingfish/footer.php", 20);
      35 |         const settings = vscode.workspace.getConfiguration('');
      36 |         console.log("mapType: " + settings.get("Postal.mapType"));
      37 |         console.log("Physics: " + settings.get("Postal.physics"));
      38 |         var ignore1 = settings.get("Postal.ignore")[0];
      39 |         //console.log(ignore1.);
      40 |         //var re = new RegExp(ignore1);
      41 | 
      42 | 
      43 |     });
      44 | 
      45 | 
      46 |     // pushes the command to the interphase where the user will then be able to 
      47 |     // use them. 
      48 |     context.subscriptions.push(testing);
      49 |     context.subscriptions.push(parse);
      50 | }
      51 | 
      52 | // this method is called when your extension is deactivated
      53 | export function deactivate() {}
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/test/extension.test.ts:
      --------------------------------------------------------------------------------
       1 | //
       2 | // Note: This example test is leveraging the Mocha test framework.
       3 | // Please refer to their documentation on https://mochajs.org/ for help.
       4 | //
       5 | 
       6 | // The module 'assert' provides assertion methods from node
       7 | import * as assert from 'assert';
       8 | 
       9 | // You can import and use all API from the 'vscode' module
      10 | // as well as import your extension to test it
      11 | import * as vscode from 'vscode';
      12 | import * as myExtension from '../src/extension';
      13 | 
      14 | // Defines a Mocha test suite to group tests of similar kind together
      15 | suite("Extension Tests", () => {
      16 | 
      17 |     // Defines a Mocha unit test
      18 |     test("Something 1", () => {
      19 |         assert.equal(-1, [1, 2, 3].indexOf(5));
      20 |         assert.equal(-1, [1, 2, 3].indexOf(0));
      21 |     });
      22 | });
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/test/index.ts:
      --------------------------------------------------------------------------------
       1 | //
       2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
       3 | //
       4 | // This file is providing the test runner to use when running extension tests.
       5 | // By default the test runner in use is Mocha based.
       6 | //
       7 | // You can provide your own test runner if you want to override it by exporting
       8 | // a function run(testRoot: string, clb: (error:Error) => void) that the extension
       9 | // host can call to run the tests. The test runner is expected to use console.log
      10 | // to report the results back to the caller. When the tests are finished, return
      11 | // a possible error to the callback or null if none.
      12 | 
      13 | var testRunner = require('vscode/lib/testrunner');
      14 | 
      15 | // You can directly control Mocha options by uncommenting the following lines
      16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info
      17 | testRunner.configure({
      18 |     ui: 'tdd', 		// the TDD UI is being used in extension.test.ts (suite, test, etc.)
      19 |     useColors: true // colored output from test results
      20 | });
      21 | 
      22 | module.exports = testRunner;
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/test/testFiles/emptyFile:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/postal/test/testFiles/emptyFile
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/test/testFiles/shortFlie:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/TestProjects/postal/test/testFiles/shortFlie
      
      
      --------------------------------------------------------------------------------
      /TestProjects/postal/tsconfig.json:
      --------------------------------------------------------------------------------
       1 | {
       2 |     "compilerOptions": {
       3 |         "module": "commonjs",
       4 |         "target": "es6",
       5 |         "outDir": "out",
       6 |         "lib": [
       7 |             "es6",
       8 |             "es2016"
       9 |         ],
      10 |         "sourceMap": true,
      11 |         "rootDir": "."
      12 |     },
      13 |     "exclude": [
      14 |         "node_modules",
      15 |         ".vscode-test"
      16 |     ]
      17 | }
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/.gitignore:
      --------------------------------------------------------------------------------
      1 | *.o
      2 | *.gch
      3 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/LICENSE:
      --------------------------------------------------------------------------------
       1 | Copyright (c) 2012 Anton Karamanov
       2 | 
       3 | Permission is hereby granted, free of charge, to any person obtaining a copy
       4 | of this software and associated documentation files (the "Software"), to deal
       5 | in the Software without restriction, including without limitation the rights
       6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
       7 | copies of the Software, and to permit persons to whom the Software is
       8 | furnished to do so, subject to the following conditions:
       9 | 
      10 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      11 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      12 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      13 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      14 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      15 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      16 | SOFTWARE.
      17 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/Makefile:
      --------------------------------------------------------------------------------
      1 | all: build
      2 | 
      3 | build:
      4 | 	g++ src/*.cpp -lGL -lGLU -lglut -o snake
      5 | 
      6 | build-macos:
      7 | 	g++ src/*.cpp -framework GLUT -framework OpenGL -o snake
      8 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/README.md:
      --------------------------------------------------------------------------------
       1 | Ataraxer Snake: C++
       2 | ===================
       3 | 
       4 | ### Description ###
       5 | 
       6 | Recreation on classic "Snake" game. Player takes control of a snake
       7 | which can grow by collecting (eating) pieces of food that appear in
       8 | random place of a screen. Player controls snake movements by changing
       9 | it's direction with w, a, s, d or arrow keys. Snakes automaticly moves
      10 | forward in current direction. To collect piece of food player have to
      11 | move through it by directing snake's head to the piece. Every eaten piece
      12 | of food increases the length of snake by 1 segment. If snake collides into
      13 | any of it's own segments it's length decreases by 3 segmets. If snake's
      14 | length is smaller than 7 it's length will only decreas until it equals 4,
      15 | granting that snake's length will always be at least 4 segments. Difficulty
      16 | of game is being represented by quantity of snake's segment moved per second.
      17 | For example difficulty level of 12 means that snake will move by one segment
      18 | 12 times per second.
      19 | 
      20 | 
      21 | Simple implementation of chess game in Scala programming language.
      22 | 
      23 | ### Dependencies ###
      24 | 
      25 | To compile and run Ataraxer Snake you need to have OpenGL and GLUT installed on your system.
      26 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/food.h:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Class: Food
       5 | * File: food.h
       6 | *
       7 | * Food class represents food pieces, that can be eaten by snake.
       8 | *
       9 | * Interface:
      10 | *	X() - gets X coordinate of food
      11 | *	Y() - gets Y coordinate of food
      12 | *	Type() - gets type of food
      13 | *
      14 | * © Karamanov A. A., 2012
      15 | * Developers: Anton Karamanov
      16 | * Date: 08/01/2012
      17 | * Version 1.1.0 Alpha
      18 | */
      19 | 
      20 | // TODO: Change the name of this type, maybe? 
      21 | #ifndef FOOD_H_
      22 | #define FOOD_H_
      23 | 
      24 | #include "piece.h"
      25 | 
      26 | enum food_type {normal};
      27 | 
      28 | class Food
      29 | {
      30 | 	public:
      31 | 		/* Constructors */
      32 | 		Food(int x, int y, food_type inType) : type(inType) {
      33 | 			coordinate = Piece(x, y);
      34 | 		}
      35 | 
      36 | 		Food(Piece inCoordinate, food_type inType) : type(inType) {
      37 | 			coordinate = inCoordinate;
      38 | 		}
      39 | 		/* Methods */
      40 | 		/* Getters */
      41 | 		int const X() {return coordinate.X();}
      42 | 		int const Y() {return coordinate.Y();}
      43 | 		int const Type() {return type;}
      44 | 
      45 | 	private:
      46 | 		food_type type;
      47 | 		Piece coordinate;
      48 | };
      49 | 
      50 | #endif
      51 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/gameplay-director.h:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Class: GameplayDirector
       5 | * File: gameplay-director.h
       6 | *
       7 | * GameplayDirector is a pure static class that controles gameplay aspects.
       8 | * All GameplayDirector methods and field are prefixed with "gd" for GameplayDirector.
       9 | *
      10 | * Interface:
      11 | *	gdStart() - initializes the game and RenderingDirector.
      12 | *	gdProcess() - processes the game on every tick
      13 | *	gdKeyPressed() - reacts on keyboard events passed from RenderingDirector
      14 | *	gdMoveSnakeFromWall(int&, int&) - moves snake's segment to the opposite wall if it's
      15 | *									  coordinate overflows field size
      16 | *	gdIsActive() - returns game state (paused or active)
      17 | *	gdGetSnake() - provides access to snake
      18 | *	gdGetSnack(int) - provides access to snacks
      19 | *	gdGetSnakeQuantity() - returns snaks quantity
      20 | *
      21 | * © Karamanov A. A., 2012
      22 | * Developers: Anton Karamanov
      23 | * Date: 08/01/2012
      24 | * Version: 1.1.0 Alpha
      25 | */
      26 | #ifndef GD_H_
      27 | #define GD_H_
      28 | 
      29 | #include 
      30 | #include 
      31 | 
      32 | #include "snake.h"
      33 | #include "food.h"
      34 | 
      35 | enum key {key_up, key_right, key_down, key_left, key_esc};
      36 | 
      37 | class GameplayDirector
      38 | {
      39 | 	public:
      40 | 		/* Methods */
      41 | 		static void gdStart(int argc, char ** argv);
      42 | 		static void gdProcess();
      43 | 		static void gdKeyPressed(key pressedKey);
      44 | 		static void gdMoveSnakeThroughWall(int & X, int & Y);
      45 | 
      46 | 		/* Getters */
      47 | 		static bool  gdIsActive();
      48 | 		static Snake gdGetSnake();
      49 | 		static Food  gdGetSnack(int n);
      50 | 		static int   gdGetSnacksQuantity();		
      51 | 
      52 | 	private:
      53 | 		/* Methods */
      54 | 		static inline void gdPause();
      55 | 		static inline void gdTurnSnake(direction newDirection);
      56 | 		static void gdAddSnack(food_type type = normal);
      57 | 		static void gdAddBadGuy();
      58 | 
      59 | 		/* Fields */
      60 | 		static Snake Python;
      61 | 		static vector gdSnacks;
      62 | 		static bool isActive; // Game paused if false.
      63 | 
      64 | 		/* Options */
      65 | 		static const int SNACKS_LIMIT = 1;
      66 | 		static const int FIELD_WIDTH = 30;
      67 | 		static const int FIELD_HEIGHT = 20;
      68 | };
      69 | 
      70 | #endif
      71 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/main.cpp:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Recreation on classic "Snake" game. Player takes control of a snake
       5 | * which can grow by collecting (eating) pieces of food that appear in
       6 | * random place of a screen. Player controls snake movements by changing
       7 | * it's direction with w, a, s, d or arrow keys. Snakes automaticly moves 
       8 | * forward in current direction. To collect piece of food player have to
       9 | * move through it by directing snake's head to the piece. Every eaten piece
      10 | * of food increases the length of snake by 1 segment. If snake collides into
      11 | * any of it's own segments it's length decreases by 3 segmets. If snake's 
      12 | * length is smaller than 7 it's length will only decreas until it equals 4,
      13 | * granting that snake's length will always be at least 4 segments. Difficulty
      14 | * of game is being represented by quantity of snake's segment moved per second.
      15 | * For example difficulty level of 12 means that snake will move by one segment
      16 | * 12 times per second.
      17 | *
      18 | * Module: main
      19 | * File: main.cpp
      20 | *
      21 | * © Karamanov A. A., 2012
      22 | * Developers: Anton Karamanov
      23 | * Date: 08/01/2012
      24 | * Version: 1.1.0 Alpha
      25 | */
      26 | #include 
      27 | #include "gameplay-director.h"
      28 | #include "rendering-director.h"
      29 | 
      30 | using std::cout;
      31 | using std::endl;
      32 | 
      33 | // Programm entry point
      34 | int main(int argc, char ** argv) {
      35 | 	// TODO: Remove couts
      36 | 	cout << "Ataraxer's Snake 1.1.0 Alpha" << endl;
      37 | 	GameplayDirector::gdStart(argc, argv);
      38 | }
      39 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/piece.h:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Class: Piece
       5 | * File: piece.h
       6 | *
       7 | * Piece class is a single element of a snake, or food piece.
       8 | * It's being represented by it's coordinates X and Y (fields
       9 | * myX and myY) in in-game coordinate scale. Piece's coordinates
      10 | * are being assigned at it's creation and can't be changed after.
      11 | *
      12 | * Interface:
      13 | *	X() - returns value of X coordinate of the segment.
      14 | *	Y() - returns value of Y coordinate of the segment.
      15 | *
      16 | * © Karamanov A. A., 2012
      17 | * Developers: Anton Karamanov
      18 | * Date: 05/01/2012
      19 | * Version 1.1.0 Alpha
      20 | */
      21 | #ifndef PIECE_H_
      22 | #define PIECE_H_
      23 | 
      24 | class Piece {
      25 | 	public:
      26 | 		/* Constructor */
      27 | 		Piece() { }
      28 | 		Piece(int inX, int inY) : myX(inX), myY(inY) { }
      29 | 
      30 | 		/* Getters */
      31 | 		int X() const {return myX;}
      32 | 		int Y() const {return myY;}
      33 | 
      34 | 		/* Operators */
      35 | 		/*
      36 | 		* Equality check, operator ==
      37 | 		*
      38 | 		* Piece is considered equal to another one if both of it's
      39 | 		* coordinates are equal to corresponding coordinates of the 
      40 | 		* segment which it is being compared to.
      41 | 		*
      42 | 		* Version: Final
      43 | 		*/
      44 | 		bool operator==(const Piece & s) {
      45 | 			return (s.myX == myX && s.myY == myY);
      46 | 		}
      47 | 		
      48 | 		/*
      49 | 		* Value assignment, operator =
      50 | 		* 
      51 | 		* Assigns value of one segment to another segment, by assigning
      52 | 		* each of it's coordinates to value of corresponding coordinate 
      53 | 		* of that segment.
      54 | 		*
      55 | 		* Version: Final
      56 | 		*/
      57 | 		Piece & operator=(const Piece & s) {
      58 | 			myX = s.myX;
      59 | 			myY = s.myY;
      60 | 			return *this;
      61 | 		}
      62 | 
      63 | 	private:
      64 | 		int myX, myY;
      65 | };
      66 | 
      67 | #endif
      68 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/rendering-director.h:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Class: RenderingDirector
       5 | * File: rendering-director.h
       6 | *
       7 | * RenderingDirector is a pure static class that performs rendering of the game scene.
       8 | * All RenderingDirector methods and field are prefixed with "rd" for RenderingDirector.
       9 | *
      10 | * Interface:
      11 | *	rdInitialize(int argc, char **argv) - initialises rendering
      12 | *
      13 | * © Karamanov A. A., 2012
      14 | * Developers: Anton Karamanov
      15 | * Date: 08/01/2012
      16 | * Version: 1.1.0 Alpha
      17 | */
      18 | #ifndef RD_H_
      19 | #define RD_H_
      20 | 
      21 | #include "snake.h"
      22 | 
      23 | enum color {white, black, red, dark_red, green, dark_green, blue, orange};
      24 | 
      25 | class RenderingDirector
      26 | {
      27 | 	public:
      28 | 		/* Methods */
      29 | 		static void rdInitialize(int argc, char **argv);
      30 | 
      31 | 	private:
      32 | 		/* Methods */
      33 | 		/* GLUT functions */
      34 | 		static void rdRender();
      35 | 		static void rdFrameControl(int arg);
      36 | 		static void rdWindowResize(int W, int H);
      37 | 		static void rdKeyPressed(unsigned char pressedKey, int x, int y);
      38 | 		static void rdSpecialKeyPressed(int pressedKey, int x, int y);
      39 | 
      40 | 		/* Color managment */
      41 | 		static void rdSetColor(int red, int green, int blue, float alpha = 0.0f);
      42 | 		static void rdPickColor(color newColor, float opacity = 0.0f);
      43 | 		static float rdOpacity(float modifier = 1.0f);
      44 | 
      45 | 		/* Objects rendering */
      46 | 		static void rdRenderSnake(Snake inSnake);
      47 | 		static void rdRenderSnacks();
      48 | 		static void rdDrawSquare(float x, float y, float size = SQUARE_SIZE);
      49 | 
      50 | 		/* Fields */
      51 | 		static int rdFrame;
      52 | 		static float rdAngle;
      53 | 
      54 | 		/* Options */
      55 | 		static const int WIDTH  = 960;
      56 | 		static const int HEIGHT = 640;
      57 | 		static const int FRAME_RATE = 60;
      58 | 		static const int SNAKE_SPEED = 12; // Snake's movement per second
      59 | 		static const float PI;
      60 | 		static const char* TITLE;
      61 | 		static const int SQUARE_SIZE = 32;
      62 | };
      63 | 
      64 | #endif
      65 | 
      
      
      --------------------------------------------------------------------------------
      /TestProjects/snake-game-cpp-master/src/snake.h:
      --------------------------------------------------------------------------------
       1 | /*
       2 | * Ataraxer's Snake
       3 | *
       4 | * Class: Snake
       5 | * File: snake.h
       6 | *
       7 | * Class snake represents the snake, that can be controled by player or AI.
       8 | *
       9 | * Interface:
      10 | *	Turn(direction) - turns snake in given direction
      11 | *	Move() - moves snake for one position
      12 | *	HasCrashed() - check for colliding into itself
      13 | *	HasCaughtFood(int, int) - check for gathering food at given coordinate
      14 | *	IsHere(int, int) - check for presence of the snake at given coordinate
      15 | *	GetScale(int) - provides access to snake's n-th scale
      16 | *	Size() - returns snake's length in scales quantity
      17 | *
      18 | * © Karamanov A. A., 2012
      19 | * Developers: Anton Karamanov
      20 | * Date: 08/01/2012
      21 | * Version 1.1.0 Alpha
      22 | */
      23 | #ifndef SNAKE_H_
      24 | #define SNAKE_H_
      25 | 
      26 | #include 
      27 | #include "piece.h"
      28 | 
      29 | using std::vector;
      30 | 
      31 | enum direction {UP, DOWN, RIGHT, LEFT, NONE};
      32 | 
      33 | class Snake {
      34 | 	public:
      35 | 		/* Constructors */
      36 | 		Snake(int size = dSnakeSize);
      37 | 
      38 | 		/* Methods */
      39 | 		bool Turn(direction newDirection);
      40 | 		void Move();
      41 | 
      42 | 		bool HasCrashed();
      43 | 		bool HasCaughtSnack(int x, int y);
      44 | 		bool IsHere(int x, int y);
      45 | 
      46 | 		/* Getters */
      47 | 		Piece const GetScale(int n);
      48 | 		// TODO: Make an actual getter for Size
      49 | 		int const Size();
      50 | 		// TODO: Ask head developer if we actually need any setters? 
      51 | 		// void setSize();
      52 | 
      53 | 	private:
      54 | 		/* Methods */
      55 | 		void AddScale();
      56 | 		void DelScale();
      57 | 		void Punish();
      58 | 		void PrintSize();
      59 | 
      60 | 		/* Fields */
      61 | 		direction myDirection;
      62 | 		vector myScales;
      63 | 		bool canTurn;
      64 | 		bool isReady;
      65 | 		int indulgence;
      66 | 
      67 | 		/* Options */
      68 | 		// d prefix stands for "default"
      69 | 		static const int dSnakeSize = 4;
      70 | 		static const int dSnakeInitialPositionX = 0;
      71 | 		static const int dSnakeInitialPositionY = 9;
      72 | 		static const int CRASH_PENALTY = 3;
      73 | 		static const int INDULGENCE_SIZE = 12;
      74 | 		static const int MIN_SIZE = 3;
      75 | };
      76 | 
      77 | #endif
      78 | 
      
      
      --------------------------------------------------------------------------------
      /postal/.DS_Store:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/postal/.DS_Store
      
      
      --------------------------------------------------------------------------------
      /postal/.gitignore:
      --------------------------------------------------------------------------------
      1 | out
      2 | node_modules
      3 | postal.json
      4 | *.vsix
      5 | .DS_Store
      6 | 
      
      
      --------------------------------------------------------------------------------
      /postal/.vscode/launch.json:
      --------------------------------------------------------------------------------
       1 | // A launch configuration that compiles the extension and then opens it inside a new window
       2 | {
       3 |     "version": "0.1.0",
       4 |     "configurations": [
       5 |         {
       6 |             "name": "Launch UI",
       7 |             "type": "node",
       8 |             "request": "launch",
       9 |             "program": "${workspaceRoot}/lib/app/main.js",
      10 |             "stopOnEntry": false,
      11 |             "args": [],
      12 |             "cwd": "${workspaceRoot}/lib/app/",
      13 |             "runtimeExecutable": "${workspaceRoot}/lib/app/node_modules/.bin/electron.cmd",
      14 |             "runtimeArgs": [
      15 |                 ".",
      16 |                 "--enable-logging"
      17 |             ],
      18 |             "env": {},
      19 |             "externalConsole": false,
      20 |             "sourceMaps": false,
      21 |             "outDir": null
      22 |         },
      23 |         {
      24 |             "name": "Launch Extension",
      25 |             "type": "extensionHost",
      26 |             "request": "launch",
      27 |             "runtimeExecutable": "${execPath}",
      28 |             "args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
      29 |             "stopOnEntry": false,
      30 |             "sourceMaps": true,
      31 |             "outDir": "${workspaceRoot}/out/src",
      32 |             "preLaunchTask": "npm"
      33 |         },
      34 |         {
      35 |             "name": "Launch Tests",
      36 |             "type": "extensionHost",
      37 |             "request": "launch",
      38 |             "runtimeExecutable": "${execPath}",
      39 |             "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
      40 |             "stopOnEntry": false,
      41 |             "sourceMaps": true,
      42 |             "outDir": "${workspaceRoot}/out/test",
      43 |             "preLaunchTask": "npm"
      44 |         }
      45 |     ]
      46 | }
      47 | 
      
      
      --------------------------------------------------------------------------------
      /postal/.vscode/settings.json:
      --------------------------------------------------------------------------------
       1 | // Place your settings in this file to overwrite default and user settings.
       2 | {
       3 |     "files.exclude": {
       4 |         "out": false // set this to true to hide the "out" folder with the compiled JS files
       5 |     },
       6 |     "search.exclude": {
       7 |         "out": true // set this to false to include "out" folder in search results
       8 |     },
       9 |     "typescript.tsdk": "./node_modules/typescript/lib" // we want to use the TS server from our node_modules folder to control its version
      10 | }
      
      
      --------------------------------------------------------------------------------
      /postal/.vscode/tasks.json:
      --------------------------------------------------------------------------------
       1 | // Available variables which can be used inside of strings.
       2 | // ${workspaceRoot}: the root folder of the team
       3 | // ${file}: the current opened file
       4 | // ${fileBasename}: the current opened file's basename
       5 | // ${fileDirname}: the current opened file's dirname
       6 | // ${fileExtname}: the current opened file's extension
       7 | // ${cwd}: the current working directory of the spawned process
       8 | 
       9 | // A task runner that calls a custom npm script that compiles the extension.
      10 | {
      11 |     "version": "0.1.0",
      12 | 
      13 |     // we want to run npm
      14 |     "command": "npm",
      15 | 
      16 |     // the command is a shell script
      17 |     "isShellCommand": true,
      18 | 
      19 |     // show the output window only if unrecognized errors occur.
      20 |     "showOutput": "silent",
      21 | 
      22 |     // we run the custom script "compile" as defined in package.json
      23 |     "args": ["run", "compile", "--loglevel", "silent"],
      24 | 
      25 |     // The tsc compiler is started in watching mode
      26 |     "isWatching": true,
      27 | 
      28 |     // use the standard tsc in watch mode problem matcher to find compile problems in the output.
      29 |     "problemMatcher": "$tsc-watch"
      30 | }
      
      
      --------------------------------------------------------------------------------
      /postal/.vscodeignore:
      --------------------------------------------------------------------------------
       1 | .vscode/**
       2 | .vscode-test/**
       3 | out/test/**
       4 | test/**
       5 | src/**
       6 | **/*.map
       7 | .gitignore
       8 | tsconfig.json
       9 | vsc-extension-quickstart.md
      10 | *.tex
      11 | *.ts
      12 | node_modules/**
      13 | lib/app/node_modules/**
      14 | 
      
      
      --------------------------------------------------------------------------------
      /postal/images/filemap.png:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/postal/images/filemap.png
      
      
      --------------------------------------------------------------------------------
      /postal/images/postalLogo.png:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/postal/images/postalLogo.png
      
      
      --------------------------------------------------------------------------------
      /postal/lib/app/.gitignore:
      --------------------------------------------------------------------------------
      1 | node_modules
      2 | 
      
      
      --------------------------------------------------------------------------------
      /postal/lib/app/LinkManager.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | module.exports = class LinkManager {
       4 |     
       5 | 
       6 |     constructor(links) {
       7 |         this.length = 0;
       8 |         this.randomAccessLinks = [];
       9 | 
      10 |         var length = 0;
      11 | 
      12 |         for (var i = 0; i < links.length; i++) {
      13 |             length++;
      14 |             this.randomAccessLinks[links[i].id] = links[i];
      15 |         }
      16 | 
      17 |         this.length = length;
      18 |     }
      19 |     
      20 |     getCondensedLinks() {
      21 |         var condensedLinks = [];
      22 |         for(var i = 0; i < this.randomAccessLinks.length; i++) {
      23 |             if (this.randomAccessLinks[i] != undefined) {
      24 |                 condensedLinks.push(this.randomAccessLinks[i]);
      25 |             }
      26 |         }
      27 | 
      28 |         return condensedLinks;
      29 |     }
      30 | 
      31 |     getLinkByID(linkID) {
      32 |         if(linkID >= this.randomAccessLinks.length){
      33 |             return null;
      34 |         }
      35 |         return this.randomAccessLinks[linkID];
      36 |     }
      37 | 
      38 |     setClusterFromByID(linkID, newFrom) {
      39 |         this.randomAccessLinks[linkID].clusterFrom = newFrom;
      40 |     }
      41 |     setClusterToByID(linkID, newTo) {
      42 |         this.randomAccessLinks[linkID].clusterTo = newTo;
      43 |     }
      44 | 
      45 |     setEnabledByID(linkID, isEnabled) {
      46 |         this.randomAccessLinks[linkID].isEnabled = isEnabled;
      47 |     }
      48 | 
      49 |     getLength() {
      50 |         return this.length;
      51 |     }
      52 | 
      53 | }
      
      
      --------------------------------------------------------------------------------
      /postal/lib/app/main.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | const electron = require('electron')
       4 |     // Module to control application life.
       5 | const app = electron.app
       6 |     // Module to create native browser window.
       7 | const BrowserWindow = electron.BrowserWindow
       8 | 
       9 | const path = require('path')
      10 | const url = require('url')
      11 | 
      12 | const ipc = electron.ipcMain;
      13 | 
      14 | // Keep a global reference of the window object, if you don't, the window will
      15 | // be closed automatically when the JavaScript object is garbage collected.
      16 | let mainWindow
      17 | 
      18 | function createWindow() {
      19 |     // Create the browser window.
      20 |     mainWindow = new BrowserWindow({
      21 |             width: 1200,
      22 |             height: 800,
      23 |             frame: false,
      24 |             resizable: false
      25 |         }) // and load the index.html of the app.
      26 |     mainWindow.loadURL(url.format({
      27 |             pathname: path.join(__dirname, 'FileMap.html'),
      28 |             protocol: 'file:',
      29 |             slashes: true
      30 |         }))
      31 |         //mainWindow.openDevTools();
      32 | 
      33 |     // Emitted when the window is closed.
      34 |     mainWindow.on('closed', function() {
      35 |         // Dereference the window object, usually you would store windows
      36 |         // in an array if your app supports multi windows, this is the time
      37 |         // when you should delete the corresponding element.
      38 |         mainWindow = null
      39 |     })
      40 | 
      41 | }
      42 | 
      43 | // This method will be called when Electron has finished
      44 | // initialization and is ready to create browser windows.
      45 | // Some APIs can only be used after this event occurs.
      46 | app.on('ready', createWindow);
      47 | // Quit when all windows are closed.
      48 | app.on('window-all-closed', app.quit);
      49 | 
      50 | 
      51 | // On OS X it is common for applications and their menu bar
      52 | // to stay active until the user quits explicitly with Cmd + Q
      53 | // if (process.platform !== 'darwin') {
      54 | //   app.on('window-all-closed', app.quit);
      55 | // }
      56 | //})
      57 | 
      58 | app.on('activate', function() {
      59 |     // On OS X it's common to re-create a window in the app when the
      60 |     // dock icon is clicked and there are no other windows open.
      61 |     if (mainWindow === null) {
      62 |         createWindow()
      63 |     }
      64 | })
      65 | 
      66 | 
      67 | // In this file you can include the rest of your app's specific main process
      68 | // code. You can also put them in separate files and require them here.
      
      
      --------------------------------------------------------------------------------
      /postal/lib/app/package.json:
      --------------------------------------------------------------------------------
       1 | {
       2 |   "name": "postal_filemap",
       3 |   "version": "1.0.0",
       4 |   "description": "FileMap GUI for Postal",
       5 |   "main": "main.js",
       6 |   "scripts": {
       7 |     "start": "electron main.js"
       8 |   },
       9 |   "keywords": [],
      10 |   "devDependencies": {
      11 |     "electron": "^1.4.1"
      12 |   },
      13 |   "dependencies": {
      14 |     "electron": "^1.4.14",
      15 |     "process-bridge": "^0.3.6"
      16 |   },
      17 |   "author": "Winkleer",
      18 |   "license": "CC0-1.0"
      19 | }
      20 | 
      
      
      --------------------------------------------------------------------------------
      /postal/lib/controller.js:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | 
       3 | const ipcClient = require('node-ipc') 
       4 | 
       5 | var processBridge;
       6 | 
       7 | function OpenUI(command, formatId) {
       8 |   
       9 |   if (!processBridge) {
      10 |     processBridge = require('process-bridge');
      11 |     delete process.env.ELECTRON_RUN_AS_NODE;
      12 |     delete process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE;
      13 |     process.env.ELECTRON_NO_ATTACH_CONSOLE = true;
      14 |   }
      15 |   
      16 |   try {
      17 |     processBridge.sendRequest({
      18 |       command: command,
      19 |       value: command === 'pick' ? orgColor :
      20 |         selections.map(selection => textEditor.document.getText(selection)), // convert
      21 |       formatId: formatId, // convert
      22 |       form: config.get('pickerForm'),
      23 |       storeDir: config.get('storeDir'),
      24 |       formatsOrder: config.get('formatsOrder') // pick
      25 |     }, ARGS, (error, message) => {
      26 |       showMessage(false);
      27 |       
      28 |       if (error) {
      29 |         if (error.isRetried) {
      30 |           console.warn('Retry (' + error + ')');
      31 |           showMessage('$(watch)\tPlease wait a while for setting up the extension...');
      32 |           return;
      33 |         }
      34 |         console.error(error);
      35 |         return;
      36 |       }
      37 |     },
      38 |     () => { showMessage(false); },
      39 |     stderr => { console.warn('[STDERR]: ' + stderr); return true; });
      40 |     } 
      41 |     
      42 |     catch (error) {
      43 |       console.error(error);
      44 |     return;
      45 |   }
      46 | }
      47 | 
      48 | 
      
      
      --------------------------------------------------------------------------------
      /postal/src/DataStruct.json:
      --------------------------------------------------------------------------------
      1 | {"FileData":{"FileStructs":[{"id":0,"level":0,"name":"dirStructure.html","type":"html","links":[]},{"id":1,"level":0,"name":"_header.php","type":"php","links":[]},{"id":2,"level":0,"name":"battles.php","type":"php","links":[]},{"id":3,"level":0,"name":"central.php","type":"php","links":[]},{"id":4,"level":0,"name":"entente.php","type":"php","links":[]},{"id":5,"level":0,"name":"index.php","type":"php","links":[]},{"id":6,"level":0,"name":"tables.php","type":"php","links":[]},{"id":7,"level":0,"name":"update_army.php","type":"php","links":[]},{"id":8,"level":0,"name":"update_army_battles.php","type":"php","links":[]},{"id":9,"level":0,"name":"update_battles.php","type":"php","links":[]},{"id":10,"level":0,"name":"update_country.php","type":"php","links":[]},{"id":11,"level":0,"name":"update_leader.php","type":"php","links":[]}],"ErrorStucts":[]}}
      
      
      --------------------------------------------------------------------------------
      /postal/src/extension.ts:
      --------------------------------------------------------------------------------
       1 | 'use strict';
       2 | // The module 'vscode' contains the VS Code extensibility API
       3 | // Import the module and reference it with the alias vscode in your code below
       4 | import * as vscode from 'vscode';
       5 | import * as path from 'path';
       6 | import { spawn } from 'child_process';
       7 | import { Controller } from './controller';
       8 | 
       9 | var isWin = /^win/.test(process.platform);
      10 | // Making a 'process bridge' 
      11 | var ipc = require('node-ipc'); 
      12 | 
      13 | 
      14 | // this method is called when your extension is activated
      15 | // your extension is activated the very first time the command is executed
      16 | export function activate(context: vscode.ExtensionContext) {
      17 | 
      18 |     let controller = new Controller();
      19 | 
      20 |     // The command has been defined in the package.json file
      21 |     // Now provide the implementation of the command with  registerCommand
      22 |     // The commandId parameter must match the command field in package.json
      23 |     let parse = vscode.commands.registerCommand('extension.parse', () => {
      24 | 
      25 |         //NEW PARSER STUFF
      26 |         controller.buildDataStructure();
      27 | 
      28 |         // Launch UI in electron
      29 |         controller.launchUI();
      30 |     });
      31 |     
      32 |     // We can get rid of this stuff later. I am testing shtuff -Cramer
      33 |     let testing = vscode.commands.registerCommand('extension.error', () => {
      34 |         // controller.jumpToFilesLine("/Users/TheCmar7/Developer/kingfish/footer.php", 20);
      35 |         const settings = vscode.workspace.getConfiguration('');
      36 |         console.log("mapType: " + settings.get("Postal.mapType"));
      37 |         console.log("Physics: " + settings.get("Postal.physics"));
      38 |         var ignore1 = settings.get("Postal.ignore")[0];
      39 |         //console.log(ignore1.);
      40 |         //var re = new RegExp(ignore1);
      41 | 
      42 | 
      43 |     });
      44 | 
      45 | 
      46 |     // pushes the command to the interphase where the user will then be able to 
      47 |     // use them. 
      48 |     context.subscriptions.push(testing);
      49 |     context.subscriptions.push(parse);
      50 | }
      51 | 
      52 | // this method is called when your extension is deactivated
      53 | export function deactivate() {}
      
      
      --------------------------------------------------------------------------------
      /postal/test/extension.test.ts:
      --------------------------------------------------------------------------------
       1 | //
       2 | // Note: This example test is leveraging the Mocha test framework.
       3 | // Please refer to their documentation on https://mochajs.org/ for help.
       4 | //
       5 | 
       6 | // The module 'assert' provides assertion methods from node
       7 | import * as assert from 'assert';
       8 | 
       9 | // You can import and use all API from the 'vscode' module
      10 | // as well as import your extension to test it
      11 | import * as vscode from 'vscode';
      12 | import * as myExtension from '../src/extension';
      13 | 
      14 | // Defines a Mocha test suite to group tests of similar kind together
      15 | suite("Extension Tests", () => {
      16 | 
      17 |     // Defines a Mocha unit test
      18 |     test("Something 1", () => {
      19 |         assert.equal(-1, [1, 2, 3].indexOf(5));
      20 |         assert.equal(-1, [1, 2, 3].indexOf(0));
      21 |     });
      22 | });
      
      
      --------------------------------------------------------------------------------
      /postal/test/index.ts:
      --------------------------------------------------------------------------------
       1 | //
       2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
       3 | //
       4 | // This file is providing the test runner to use when running extension tests.
       5 | // By default the test runner in use is Mocha based.
       6 | //
       7 | // You can provide your own test runner if you want to override it by exporting
       8 | // a function run(testRoot: string, clb: (error:Error) => void) that the extension
       9 | // host can call to run the tests. The test runner is expected to use console.log
      10 | // to report the results back to the caller. When the tests are finished, return
      11 | // a possible error to the callback or null if none.
      12 | 
      13 | var testRunner = require('vscode/lib/testrunner');
      14 | 
      15 | // You can directly control Mocha options by uncommenting the following lines
      16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info
      17 | testRunner.configure({
      18 |     ui: 'tdd', 		// the TDD UI is being used in extension.test.ts (suite, test, etc.)
      19 |     useColors: true // colored output from test results
      20 | });
      21 | 
      22 | module.exports = testRunner;
      
      
      --------------------------------------------------------------------------------
      /postal/test/testFiles/emptyFile:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/postal/test/testFiles/emptyFile
      
      
      --------------------------------------------------------------------------------
      /postal/test/testFiles/shortFlie:
      --------------------------------------------------------------------------------
      https://raw.githubusercontent.com/slichlyter12/Postal/9117459a7a49ca0f52e2d69d902ce10f0f5cb51f/postal/test/testFiles/shortFlie
      
      
      --------------------------------------------------------------------------------
      /postal/tsconfig.json:
      --------------------------------------------------------------------------------
       1 | {
       2 |     "compilerOptions": {
       3 |         "module": "commonjs",
       4 |         "target": "es6",
       5 |         "outDir": "out",
       6 |         "lib": [
       7 |             "es6",
       8 |             "es2016"
       9 |         ],
      10 |         "sourceMap": true,
      11 |         "rootDir": "."
      12 |     },
      13 |     "exclude": [
      14 |         "node_modules",
      15 |         ".vscode-test"
      16 |     ]
      17 | }
      
      
      --------------------------------------------------------------------------------