diff --git a/.travis.yml b/.travis.yml index f4bfbdc..de820b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,20 @@ -language: python -python: - # PyPy versions - - "pypy3" # currently Python 3.6.1, PyPy 7.1.1-beta0 -# command to install dependencies -install: - - pip install pytest -# command to run tests -script: - - cd tests - - pytest +jobs: + include: + - language: python + python: + # PyPy versions + - "pypy3" # currently Python 3.6.1, PyPy 7.1.1-beta0 + # command to install dependencies + install: + - pip install pytest + # command to run tests + script: + - cd tests + - pytest + - language: php + php: + - 7.4 + script: + - cd /home/travis/build/ineelshah/SRIJAS/Code/Web_app + - php test.php + diff --git a/Code/Scrapper/Scrapper.py b/Code/Scrapper/Scrapper.py index b551a4c..d0cc604 100644 --- a/Code/Scrapper/Scrapper.py +++ b/Code/Scrapper/Scrapper.py @@ -75,7 +75,7 @@ def get_job_description(keyword,no_of_jobs_to_retrieve,data): searchquery="Software Engineer" options = Options() options.add_argument("--window-size=1920,1200") - options.add_argument('--headless') + options.headless= True options.add_argument('--nosandbox') options.add_argument('--disable-dev-shm-usage') browser = webdriver.Chrome(options=options, executable_path=ChromeDriverManager().install()) @@ -171,7 +171,7 @@ def get_job_description(keyword,no_of_jobs_to_retrieve,data): port = 587 smtp_server = "smtp.gmail.com" login = "srijas.alerts@gmail.com" -password = "SRIJASGMAILPWD" +password = "" sender = "srijas.alerts@gmail.com" for key in final_result: if key in email_id_list: diff --git a/Code/Web_app/mail_test.py b/Code/Web_app/mail_test.py index c33771b..dccda6e 100644 --- a/Code/Web_app/mail_test.py +++ b/Code/Web_app/mail_test.py @@ -19,7 +19,7 @@ msg = MIMEMultipart() msg['From'] = sender msg['To'] = receiver -msg['Subject'] = 'PHP Code Test Results' +msg['Subject'] = 'Post deployment test Results' body = message msg.attach(MIMEText(body, 'plain')) text = msg.as_string() diff --git a/Code/Web_app/sample.pdf b/Code/Web_app/sample.pdf new file mode 100644 index 0000000..c0e31a0 Binary files /dev/null and b/Code/Web_app/sample.pdf differ diff --git a/Code/Web_app/sendData.php b/Code/Web_app/sendData.php index 3230341..5586350 100644 --- a/Code/Web_app/sendData.php +++ b/Code/Web_app/sendData.php @@ -1,4 +1,5 @@ ".$resume_pass."-".$user_pass."
"; - return array("resume"=>$resume_pass,"user"=>$user_pass,"params"=>$params,"dbConnection"=>$dbConnection); + return array("resume"=>$resume_pass,"user"=>$user_pass,"params"=>$paramsCheck,"dbConnection"=>$dbConnection); } $stmt->close(); @@ -313,6 +314,7 @@ function executer($inputName, $inputEmail, $inputJobTypeId, $target_file){ /** * Here, the control is sent back to the index.php file */ +ob_end_clean(); echo ""; exit; }catch(Exception $e){ diff --git a/README.md b/README.md index 43836f0..be2277c 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,9 @@ The links of the jobs that matches with the skills in your resume, will be sent This is our submission for the Project for Software Engineering CSC 510 Fall 2021. +## Infrastructure Description: +![Infrastructure](https://github.com/ineelshah/SRIJAS/blob/main/images/Infrastructure.jpg) + ## Database Schema: ![DB_Schema](https://github.com/ineelshah/SRIJAS/blob/main/images/DB_Schema.jpg) diff --git a/docs/Database.pdf b/docs/Database.pdf new file mode 100644 index 0000000..4d736cd Binary files /dev/null and b/docs/Database.pdf differ diff --git a/docs/Infrastructure.pdf b/docs/Infrastructure.pdf index d2d7257..5fb44f5 100644 Binary files a/docs/Infrastructure.pdf and b/docs/Infrastructure.pdf differ diff --git a/docs/Scraper_Service_linked-in_documentation.pdf b/docs/Scraper_Service_linked-in_documentation.pdf new file mode 100644 index 0000000..ff51503 Binary files /dev/null and b/docs/Scraper_Service_linked-in_documentation.pdf differ diff --git a/docs/docsproj1rubricComments.pdf b/docs/docsproj1rubricComments.pdf new file mode 100644 index 0000000..3ac9d33 Binary files /dev/null and b/docs/docsproj1rubricComments.pdf differ diff --git a/docs/proj1rubric.md b/docs/proj1rubric.md index 2ff5622..4d2c408 100644 --- a/docs/proj1rubric.md +++ b/docs/proj1rubric.md @@ -2,6 +2,8 @@ # Project 1 Rubric +Column B Total: 241. + | Notes|Self Assessment zero (none), one (a litte), two (somewhat), three (a lot)| Evidence| |-----|--------|---------| @@ -11,97 +13,96 @@ | Issues reports: there are **many**| 3|In GH (https://github.com/ineelshah/SRIJAS/issues) | | issues are being closed|3 |Evidence in GH (https://github.com/ineelshah/SRIJAS/issues?q=is%3Aissue+is%3Aclosed)| | DOI badge: exists |3 |In GH (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| -|Docs: doco generated , format not ugly | 0| Not yet implemented| -|Docs: what: point descriptions of each class/function (in isolation) | 0| Not yet implemented| -|Docs: how: for common use cases X,Y,Z mini-tutorials showing worked examples on how to do X,Y,Z| 2|The demo video shows this (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| +|Docs: doco generated , format not ugly | 3| In GH (https://github.com/ineelshah/SRIJAS/tree/main/docs)| +|Docs: what: point descriptions of each class/function (in isolation) | 3| In GH (https://github.com/ineelshah/SRIJAS/tree/main/docs)| +|Docs: how: for common use cases X,Y,Z mini-tutorials showing worked examples on how to do X,Y,Z| 3|The demo video shows this (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| |Docs: why: docs tell a story, motivate the whole thing, deliver a punchline that makes you want to rush out and use the thing| 3| The demo video and repository homepage (README) shows this (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| |Docs: short video, animated, hosted on your repo. That convinces people why they want to work on your code.|3 | SRIJAS_DEMO.mp4 as attached in the README.md in the repository. (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| | Use of version control tools| 3| Git is used thorougly in the project (https://github.com/ineelshah/SRIJAS)| | Use of style checkers |3 |config files in GH showing your config (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/style_checker.yml)| | Use of code formatters. | 3|config files in GH showing your this formatter's config (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/code_formatter.yml)| | Use of syntax checkers| 3 |config files in GH showing this checker's config (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/main.yml)| -| Use of code coverage | 0| Not yet implemented| +| Use of code coverage | 3| In GH (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/code_cov.yml)| | other automated analysis tools| 3|config files in GH (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/close_as_a_feature.yml) and (https://github.com/ineelshah/SRIJAS/blob/main/.github/workflows/Respost.yml)| -| test cases exist| 2| a lot of test cases exist but not covering all the functionalities. To be added soon.| -| test cases are routinely executed| 2| Github actions and travis CI both are conducting regular tests.| - | the files CONTRIBUTING.md lists coding standards and lots of tips on how to extend the system without screwing things up| 3| | -| issues are discussed before they are closed| 3| Most discussions on whatsapp, in person, on issue comments, and over calls.| -| Chat channel: exists| 3| Whatsapp chat channel exists.| -| test cases:.a large proportion of the issues related to handling failing cases.|2 |if a test case fails, open an issue and fix it| +| test cases exist| 2| a lot of test cases exist covering almost all the functionalities.| +| test cases are routinely executed| 3| Github actions and travis CI both are conducting regular tests.| + | the files CONTRIBUTING.md lists coding standards and lots of tips on how to extend the system without screwing things up| 3| In GH (https://github.com/ineelshah/SRIJAS/blob/main/CONTRIBUTING.md)| +| issues are discussed before they are closed| 3| Most discussions on whatsapp, in person, on issue comments, and over calls. (https://github.com/ineelshah/SRIJAS/issues)| +| Chat channel: exists| 3| Preferred chat channel exists.| +| test cases:.a large proportion of the issues related to handling failing cases.|2 |if a test case fails, open an issue and fix it (One of many examples: https://github.com/ineelshah/SRIJAS/issues/31)| | evidence that the whole team is using the same tools: everyone can get to all tools and files| 3| https://github.com/ineelshah/SRIJAS/blob/main/requirements.txt | -| evidence that the whole team is using the same tools (e.g. config files in the repo, updated by lots of different people)| 3| | -| evidence that the whole team is using the same tools (e.g. tutor can ask anyone to share screen, they demonstrate the system running on their computer)| 3| | -| evidence that the members of the team are working across multiple places in the code base| 3| | -| short release cycles | 3|| -| Documentation provides clear overview of software and uses | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md| +| evidence that the whole team is using the same tools (e.g. config files in the repo, updated by lots of different people)| 3| In GH (https://github.com/ineelshah/SRIJAS/graphs/contributors)| +| evidence that the whole team is using the same tools (e.g. tutor can ask anyone to share screen, they demonstrate the system running on their computer)| 3| In GH (https://github.com/ineelshah/SRIJAS/graphs/contributors)| +| evidence that the members of the team are working across multiple places in the code base| 3| In GH (https://github.com/ineelshah/SRIJAS/graphs/contributors)| +| short release cycles | 3| It is difficult to show this in a small project but here is a release cycle example. (https://github.com/ineelshah/SRIJAS/releases)| +| Documentation provides clear overview of software and uses | 3| Evidence in GH. https://github.com/ineelshah/SRIJAS/blob/main/README.md| | Website and documentation clearly describe the type of user who should use your software | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md | | Case studies to show how software is used by us | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md | | Project name unique | 3| SRIJAS is an abbreviation for Smart Resume Interpreter and Job Alert System. | | Project name free from trademark violations | 3| We verified that "SRIJAS" has not been trademarked by any python repository or any US company. | -| Software available as a package that can be deployed without building it | | | +| Software available as a package that can be deployed without building it | 0| Not yet implemented to be served as a package.| | Software available for free | 3| Our repository is public and can be clone and used by anyone. https://github.com/ineelshah/SRIJAS| | Source code publicly available to download, either as a downloadable bundle or via access to a source code repository | 3| | -| Software hosted in an established, third-party repository likeGitHub (https://github.com) | 3| | +| Software hosted in an established, third-party repository likeGitHub (https://github.com) | 3| Evidence on GH. (https://github.com/ineelshah/SRIJAS)| | Documentation clearly available within your software | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md| | Documentation includes a "quick start" guide, that provides a short overview of how to use your software with some basic examples of use | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md| | Providing more extensive documentation, that gives a clear, step-by-step instructions on how to deploy and use our software | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md | | Comprehensive guide to all your software’s commands, functions and options| 3| We have defined one use case of each command or function that can be performed by our code. | | Troubleshooting information that describes the symptoms and step-by-step solutions for problems and error messages| 0| NA | -| If your software can be used as a library, package or service by other software, do you provide comprehensive API documentation| 1| | +| If your software can be used as a library, package or service by other software, do you provide comprehensive API documentation| 0| Not Applicable| | Documentation stored under revision control with source code| 3| hhttps://github.com/ineelshah/SRIJAS/blob/main/README.md | | Publishing the release history e.g. release data, version numbers, key features of each release etc. in your documentation | 3| https://github.com/ineelshah/SRIJAS/releases| | Software describes how a user can get help with using your software | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md | | Our documentation describes what support we provide to users and developers | 3| https://github.com/ineelshah/SRIJAS/blob/main/README.md | -| Project has an e-mail address or forum that is solely for supporting users | Yes (3) | srijas.alerts@gmail.com | -| E-mails to our support e-mail address are received by more than one person | Yes (3) | we all have the access credentials to the support email | -| Project have a ticketing system to manage bug reports and feature requests | Yes (3) | https://github.com/ineelshah/SRIJAS/projects/1| -| Project's ticketing system publicly visible to your users, so they can view bug reports and feature requests | Yes (3) | https://github.com/ineelshah/SRIJAS/projects/1| -| Software’s architecture and design is modular | Yes (3) | | -| Software uses an accepted coding standard or convention | Yes (3) | https://github.com/ineelshah/SRIJAS/blob/main/CODE_OF_CONDUCT.md,https://github.com/ineelshah/SRIJAS/blob/main/CONTRIBUTING.md| -| | | | +| Project has an e-mail address or forum that is solely for supporting users | 3| srijas.alerts@gmail.com | +| E-mails to our support e-mail address are received by more than one person | 3| we all have the access credentials to the support email | +| Project have a ticketing system to manage bug reports and feature requests | 3| https://github.com/ineelshah/SRIJAS/projects/1| +| Project's ticketing system publicly visible to your users, so they can view bug reports and feature requests | 3| https://github.com/ineelshah/SRIJAS/projects/1| +| Software’s architecture and design is modular | 3| Modular coding practices were used.| +| Software uses an accepted coding standard or convention | 3| https://github.com/ineelshah/SRIJAS/blob/main/CODE_OF_CONDUCT.md,https://github.com/ineelshah/SRIJAS/blob/main/CONTRIBUTING.md| | Software allows data to be imported and exported using open data formats | 3| Data is imported in the form of resume from the user and is exported in the form of email | | Software allows communications using open communications protocols | 3| Yes. SMTP is used for mailing service| -| Software cross-platform compatible | Yes (3) | The only thing needed is python,selenium and xampp. It will work on all operating systems that have python,selenium and xampp. | -| Software adhere to appropriate accessibility conventions or standards | | | -| Documentation adheres to appropriate accessibility conventions or standards | 3| | -| Each source code releases a snapshot of the repository | | | -| Releases are tagged in the repository | Yes (3) | https://github.com/ineelshah/SRIJAS/releases | -| There is a branch of the repository that is always stable | Yes (3) | the main branch is always stable | -| Back-up your repository | | | -| Provide publicly available instructions for building the software from the source code | | | -| Build, or package, the software using an automated tool | | | -| Provide publicly-available instructions for deploying the software | | | +| Software cross-platform compatible | 3| The only thing needed is python, selenium, PHP and xampp. It will work on all operating systems that have python, selenium, PHP and xampp. | +| Software adhere to appropriate accessibility conventions or standards | 2| It somewhat does.| +| Documentation adheres to appropriate accessibility conventions or standards | 3| As seen in documentation.| +| Each source code releases a snapshot of the repository | 0| Not yet implemented.| +| Releases are tagged in the repository | 3| https://github.com/ineelshah/SRIJAS/releases | +| There is a branch of the repository that is always stable | 3| the main branch is always stable | +| Back-up your repository | 3| We have local backups always available with us. Also, created a release package on zenodo.| +| Provide publicly available instructions for building the software from the source code | 3| Evidence in GH. (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| +| Build, or package, the software using an automated tool | 3| Travis CI builds this. (https://app.travis-ci.com/github/ineelshah/SRIJAS)| +| Provide publicly-available instructions for deploying the software | 3| Evidence in GH. (https://github.com/ineelshah/SRIJAS/tree/main/docs)| | Documentation list all third-party dependencies | 3| https://github.com/ineelshah/SRIJAS/blob/main/requirements.txt| | Documentation lists the version number for all third-party dependencies | 3| https://github.com/ineelshah/SRIJAS/blob/main/requirements.txt| -| Software list the web address, and licences for all third-party dependencies and say whether the dependencies are mandatory or optional | | | -| Download dependencies using a dependency management tool or package manager | | | -| Tests that can be run after your software has been built or deployed to show whether the build or deployment has been successful | | | +| Software list the web address, and licences for all third-party dependencies and say whether the dependencies are mandatory or optional | 0| Not yet implemented.| +| Download dependencies using a dependency management tool or package manager | 3| We install using pip install.| +| Tests that can be run after your software has been built or deployed to show whether the build or deployment has been successful | 3| Github actions and trais CI implement tests to check this.| | Automated test suite for your software | 3| https://github.com/ineelshah/SRIJAS/tree/main/tests| -| Framework to periodically (e.g. nightly) run your tests on the latest version of the source code | | | +| Framework to periodically (e.g. nightly) run your tests on the latest version of the source code | 2| We test the source code on every push/commit to the souce code.| | Using continuous integration, automatically running tests whenever changes are made to your source code | 3| https://github.com/ineelshah/SRIJAS/actions/workflows/unit_test.yml | | Test results publicly visible | 3| https://github.com/ineelshah/SRIJAS/actions/workflows/unit_test.yml | -| Manually-run tests documented | | | -| Project has resources (e.g. blog, Twitter, RSS feed, Facebook page, wiki, mailing list) that are regularly updated with information about your software | | | +| Manually-run tests documented | 2| Somewhat test cases are documented. Can be found in the tests directory.| +| Project has resources (e.g. blog, Twitter, RSS feed, Facebook page, wiki, mailing list) that are regularly updated with information about your software | 0| Not yet implemented.| | Documentation states how many projects and users are associated with your project | 3| https://github.com/ineelshah/SRIJAS/graphs/contributors | -| Provide success stories on your website | | | +| Provide success stories on your website | 0| Not yet implemented.| | Listing the important partners and collaborators in our documentation | 3| https://github.com/ineelshah/SRIJAS/graphs/contributors | -| Listing the project's publications on our website or link to a resource where these are available | | | -| Listing third-party publications that refer to the software on our website or link to a resource where these are available | | | +| Listing the project's publications on our website or link to a resource where these are available | 1| No publications yet.| +| Listing third-party publications that refer to the software on our website or link to a resource where these are available | 0| Not applicable.| | Users can subscribe to notifications to changes to your source code repository | 3| Each contributor gets an email when any issues they are assigned gets an update. | -| Since the software is developed as an open source project (and, not just a project developing open source software), do we have a governance model | | | -| Do we accept contributions (e.g. bug fixes, enhancements, documentation updates, tutorials) from people who are not part of your project? | | | +| Since the software is developed as an open source project (and, not just a project developing open source software), do we have a governance model | 0| No governance model yet.| +| Do we accept contributions (e.g. bug fixes, enhancements, documentation updates, tutorials) from people who are not part of your project? | 3| Yes we have not closed this project to accept only contributors to add to the project. It is open source and anyone can contribute.| | Do you have a contributions policy | Yes (3) | https://github.com/ineelshah/SRIJAS/blob/main/CONTRIBUTING.md | | Is your contributions' policy publicly available? | Yes (3) | https://github.com/ineelshah/SRIJAS/blob/main/CONTRIBUTING.md | -| Do contributors keep the copyright/IP of their contributions | | | -| Website and documentation clearly states the copyright owners of your software and documentation | | | -| Do each of your source code files include a copyright statement | | | +| Do contributors keep the copyright/IP of their contributions | 0| The contributors do not keep any copyright since this is open source code.| +| Website and documentation clearly states the copyright owners of your software and documentation | 2| The github page describes contributors clearly.| +| Do each of your source code files include a copyright statement | 0| Not yet implemented.| | The website and documentation clearly state the licence of your software | 3| https://github.com/ineelshah/SRIJAS/blob/main/LICENSE | | Software released under an open source licence | Yes (3) | https://github.com/ineelshah/SRIJAS/blob/main/LICENSE | | Software released under an OSI-approved open-source licence | Yes (3) | https://github.com/ineelshah/SRIJAS/blob/main/LICENSE | -| Source code files include a licence header | | | -| Recommended citation for your software | | | -| Documentation includes a project roadmap (a list of project and development milestones for the next 3, 6 months) | | | -| Documentation describe how the project is funded, and the period over which funding is guaranteed? | | | -| Do you make timely announcements of the deprecation of components, APIs, etc. | | | +| Source code files include a licence header | 0| Not yet implemented.| +| Recommended citation for your software | 3| Evidence on GH. (https://github.com/ineelshah/SRIJAS/blob/main/CITATION.cff)| +| Documentation includes a project roadmap (a list of project and development milestones for the next 3, 6 months) | 3| The GH readme.md has it. (https://github.com/ineelshah/SRIJAS/blob/main/README.md)| +| Documentation describe how the project is funded, and the period over which funding is guaranteed? | 0| No funding recieved yet.| +| Do you make timely announcements of the deprecation of components, APIs, etc. | 0| Not yet implemented.| diff --git a/images/Infrastructure.jpg b/images/Infrastructure.jpg index 819bfae..7ae2de7 100644 Binary files a/images/Infrastructure.jpg and b/images/Infrastructure.jpg differ diff --git a/requirements.txt b/requirements.txt index af8303b..387d434 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,14 +1,62 @@ -selenium -time -MIMEMultipart -MIMEText -gaierror -smtplib -pytest -sys -mysql -json -socket -pymysql +appdirs==1.4.3 +attrs==19.3.0 +Automat==0.8.0 +blinker==1.4 +certifi==2019.11.28 +chardet==3.0.4 +Click==7.0 +configobj==5.0.6 +configparser==5.0.2 +constantly==15.1.0 +crayons==0.4.0 +cryptography==2.8 +distlib==0.3.0 +distro==1.4.0 +entrypoints==0.3 +filelock==3.0.12 +httplib2==0.14.0 +hyperlink==19.0.0 +idna==2.8 +incremental==16.10.1 +Jinja2==2.10.1 +jsonpatch==1.22 +jsonpointer==2.0 +jsonschema==3.2.0 +keyring==18.0.1 +launchpadlib==1.10.13 +lazr.restfulclient==0.14.2 +lazr.uri==1.0.3 +MarkupSafe==1.1.0 +mysql-connector-python==8.0.26 +netifaces==0.10.4 +oauthlib==3.1.0 +pexpect==4.6.0 +protobuf==3.18.0 +pyasn1==0.4.2 +PyHamcrest==1.9.0 +PyJWT==1.7.1 +pymacaroons==0.13.0 +PyMySQL==1.0.2 +PyNaCl==1.3.0 +pyOpenSSL==19.0.0 +pyrsistent==0.15.5 +pyserial==3.4 +pytest==6.2.5 +PyYAML==5.3.1 +requests==2.22.0 +requests-unixsocket==0.2.0 +SecretStorage==2.3.1 +selenium==3.141.0 +service-identity==18.1.0 +simplejson==3.16.0 +six==1.14.0 +ssh-import-id==5.10 +Twisted==18.9.0 +urllib3==1.25.8 +virtualenv==20.0.17 +wadllib==1.3.3 +webdriver-manager==3.4.2 +zipp==1.0.0 +