-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/nus-mtp/x-aurora
- Loading branch information
Showing
71 changed files
with
4,979 additions
and
729 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,120 @@ | ||
x-aurora | ||
simplify copy and paste | ||
current status: | ||
UI and Logic: Not connected | ||
Logic and Chrome Plugin: Connected | ||
Logic and Word Plugin: Connected | ||
Logic and data synchronization: not Connected | ||
|
||
Testing step: | ||
1. Open Chrome -> Tools -> Extension or (chrome://extensions/) -> Load unpacked extensions -> Select Chrome Plugin folder under Xaurora Folder | ||
2. Open XAuroraWordPlugin.sln under Word Plugin\XAuroraWordPlugin folder under Xaurora Folder (Visual Studio 2015 Professional is the most preferable) | ||
3. Run the XAuroraWordPlugin.sln, the program will automatically run a Microsoft Word application (depends on the word version installed on the PC, currently available for Microsoft Word 2010/2013/2013 Professional Plus/365/2016) | ||
4. Import the X-aurora project into Eclipse, Run Main.java. (In case of error, it is caused by JAVAFX library and the configuration conflicts between Eclipse and Netbeans IDE, Currently since UI and Logic is not connected, there will not be any problem) | ||
5. Browse any webpage other than the default dummy block list (wikipedia) | ||
6. The text data of the repective webpage will be pasted directly on the Word Document | ||
|
||
Current Problem: | ||
1. Maximum data transmission length is only 1024 bytes, will be modified in the next sprint | ||
2. Some special Unicode Character may not be able to paste correctly (e.g �) | ||
###X-aurora | ||
This project aims to develop a productivity tool that allows users to copy and paste the text content on the webpage more efficiently by minimizing the number of windows switching in the copy and paste process. | ||
|
||
##current status: | ||
|
||
#Logic (Completed) | ||
|_ Features | ||
|_ Receive Text Extracted From Web Browser | ||
|_ Construct the Encrypted text data files | ||
|_ Pre-process and construct the correct Indexing entries | ||
|_ Prefix Searching | ||
|_ Term Searching | ||
|_ Email and Number Recognition | ||
|_ Email and Number Searching | ||
|_ Auto-Deletion for expired files | ||
|_ User login (Not dropbox authentication) | ||
|_ User switching | ||
|_ Sending Suggestions towards editor Plugin | ||
|_ Robustness | ||
|_ Unit Testing | ||
|_ Data Encryption | ||
|_ Data Decryption | ||
|_ Data File Creation | ||
|_ Data File Deletion | ||
|_ Indexing Document (Lucene Document) Insertion | ||
|_ Indexing Document Deletion | ||
|_ Document Searching (Based on Index and Keyword) | ||
|_ Data File Expiry Setting (in both hours and seconds) | ||
|_ User Login | ||
|_ Switch User | ||
|_ Input Validity Check | ||
|_ Assertions | ||
|_ Logging (Log4j) | ||
|_ Master_log (Log of everything) | ||
|_ IO_log (log of File IO) | ||
|_ Text_log (log of Indexing) | ||
|_ Error_log (log of exceptions) | ||
|_ Usability | ||
|_ Prefix Matching | ||
|_ Name and Email Recognition | ||
|_ Sorting by Relevance and Reference Time | ||
|_ Performance | ||
|_ Lighter weight API (350+ MB Stanford G.A.T.E library -> 1.6 MB JavaCC Parser, lose in recogniton precison but increase the loading performance) | ||
|_ No iterative String Concatenation (Java String builder/passing data in byte arrays, Eliminate Unnecessary Memory Copy) | ||
|_ Incremental Database construction (Eliminate Unnecessary File I/O) | ||
|_ Only 1 query in every operation towards the indexing system (Eliminate Unnecessary Database Access) | ||
|_ Security | ||
|_ Data Security | ||
|_ AES Encryption of text data files (Confidentiality) | ||
|_ Key is constructed with MD5 hashed User Name and Email and Unique Salt of Each User (Authenticity) | ||
|_ Initial Vector (IV) is determined by Filename of the document, which is the MD5 hashed data source and extraction time (Integrity, as modification of filename or content will lead to failure in decryption) | ||
|_ User Unique .ks (Key Set) files (Synchronized) | ||
|_ Hard Coded Master Key to encrypt user Key Set Files | ||
|_ Runtime Security (Data Confidentiality/Integrity at Runtime) | ||
|_ Disallow Clone for all defined objects | ||
|_ Disallow Serialization and DeSerialization of all defined object | ||
|_ Disallow sub-Class Creation of all defined objects (all classes are final) | ||
|_ Disallow overwriting of all defined public method (all public method are final) | ||
|_ All Members are defined as private | ||
|_ Consider Input Parameters as final if necessary (to avoid accidential data writing/corruption) | ||
|_ Library Build Path (For Logic) | ||
|_ Lucene 5.4.1 (Indexing) | ||
|_ JavaCC Eclipse Plugin | ||
|_ Log4J Framework (log4j-1.2.17) | ||
|_ Apache Common IO (For File IO) | ||
|_ Junit 4.10 | ||
|_ Continuous Integration Server | ||
|_ https://travis-ci.org/nus-mtp/x-aurora | ||
#UI (Incomplete) | ||
#Web-Browser Plugin (Incomplete) | ||
#Editor Plugin (Incomplete) | ||
#Dropbox Synchronization (Incomplete) | ||
|
||
##System Set up | ||
|
||
#Logic | ||
|_ Requirement : Eclipse 4.5 | ||
|_ Installation of JavaCC Ecplise Plugin: | ||
|_ Help -> Install New Software | ||
|_ input http://eclipse-javacc.sourceforge.net/ -> add | ||
|_ installation will be completed automatically | ||
|_Installation of Junit 4.10 Unit Testing Framework | ||
|_ Download Junit archive | ||
|_ Windows junit4.10.jar | ||
|_ Linux junit4.10.jar | ||
|_ Mac OSX junit4.10.jar | ||
|_ Build Path | ||
|_ Open Eclipse | ||
|_ Right click on project | ||
|_ Click on property | ||
|_ Build Path -> Configure Build Path | ||
|_ Add External Jars -> Add the junit4.10.jar | ||
|_ Running | ||
|_ prepare the parser | ||
|_ Project Package View -> xaurora.text -> XauroraParser.jj | ||
|_ Right click-> Compile with JavaCC | ||
|_ Run Main.java | ||
|
||
#UI (Incomplete) | ||
#Web-Browser Plugin (Incomplete) | ||
#Editor Plugin (Incomplete) | ||
#Dropbox Synchronization (Incomplete) | ||
|
||
##Testing | ||
|
||
#Logic | ||
Unit Testing | ||
|_ Run all testing programs under xaurora.test package | ||
Manual Testing | ||
|_ Run the web plugin and Main.java | ||
|_ Check through the /local_data/ folder for encrypted data files | ||
|_ Check through the /conf_data/user/ folder for .ks files and indexing system files | ||
|_ Check through the /conf_data/system/log/ foler for all the log files | ||
|
||
##Current Problem: | ||
|
||
1. Other Components May not be connected and Working | ||
2. Hard to demostrate the correctness of Logic Components (credit by Dr.Bimlesh Wadhwa) | ||
3. Still can Improve on Performance and Usability of Logic (like early garbage collection, increase the precision of recognition) (credit by Dr.Bimlesh Wadhwa) | ||
4. Extend the security consideration towards other components like UI preference etc |
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio 2012 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XAuroraWordPlugin", "XAuroraWordPlugin\XAuroraWordPlugin.csproj", "{D1B79060-DC31-45DA-BD7C-744DC679E5C4}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{D1B79060-DC31-45DA-BD7C-744DC679E5C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{D1B79060-DC31-45DA-BD7C-744DC679E5C4}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{D1B79060-DC31-45DA-BD7C-744DC679E5C4}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{D1B79060-DC31-45DA-BD7C-744DC679E5C4}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
EndGlobal |
Binary file not shown.
Oops, something went wrong.