Git Product home page Git Product logo

hyperlearningai / pob Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 366 KB

Public Opportunities Bot (POB) is an open-source and easily extensible software project that fully-automates the collation, analysis and notification of procurement opportunities from public sector procurement frameworks in order to support business development.

Home Page: https://docs.pob.directory

License: MIT License

Java 100.00%
aws-lambda azure-functions bot google-chat java jsoup microsoft-teams okhttp opencsv slack

pob's Introduction


POB

Public Opportunities Bot (POB) is an open-source and easily extensible software project that fully-automates the collation, analysis and notification of procurement opportunities from public sector procurement frameworks in order to support business development.

Website · Documentation


POB
Automated notification of procurement opportunities in Slack

Table of Contents

1. Introduction
    1.1. Vision
    1.2. Benefits
    1.3. Open Frameworks
2. Getting Started
    2.1. Build from Source
    2.2. Deployment
3. License
4. Acknowledgements
5. Contact and Further Information

1. Introduction

Public Opportunities Bot (POB) is an open-source and easily extensible software project that fully-automates the collation, analysis and notification of procurement opportunities from public sector procurement frameworks in order to support business development.

1.1. Vision

The ultimate aim of the Public Opportunities Bot (POB) is to provide a single platform for all global public sector procurement opportunities, supporting intuitive search, analytics and real-time notifications to any downstream business development, sales or collaboration system. Please refer to our Roadmap for further information regarding current and future features. POB was built and is actively maintained by HyperLearning AI.

1.2. Benefits

The majority of existing public sector procurement frameworks require business development teams to sign up for e-mail based notifications when new procurement opportunities are published to their platforms. As most organisations sign up with a single e-mail address, e-mail notifications must either be forwarded to relevant individuals or a mailbox must be created. In either event, it creates a single point of failure and significantly limits effective business development collaboration across an organisation.

By using POB, organisations can utilise existing internal instant messaging and collaboration platforms (such as Slack, Microsoft Teams or Google Chat) to improve business development processes by automatically notifying and encouraging collaboration between teams and individuals across their organisation, from senior leadership and sales teams to project managers, software engineers and client-facing teams, as procurement opportunities are published in real-time.

Furthermore by integrating POB with existing internal business intelligence and data analysis systems (such as Microsoft Power BI, Tableau, Kibana or Salesforce) via native connectors, dedicated business development and sales teams can proactively monitor and analyse historic market trends, as well as predicting future demand and growth areas.

1.3. Open Frameworks

POB is written in Java 11 and utilizes the following core open-source software frameworks and services:


2. Getting Started

The following instructions describe how to clone the POB source code repository into your development or deployment environment, and then how to compile, build and package the respective POB software services and applications ready for deployment.

2.1. Build from Source

Build Tools

Please ensure that the following prerequisite build tools are installed in your development or deployment environment.

  • OpenJDK 11 - open source reference implementation of Java 11.
  • Apache Maven - open source build automation tool for Java.
  • Git - open source distributed version control system.

Clone the Source Code

The open-source source code for the POB project may be found on GitHub at https://github.com/hyperlearningai/pob. To clone the POB source code repository into your development or deployment environment, please run the following Git command via your command line (or via your preferred Git GUI tool). The location of the cloned POB source code project folder will hereafter be referred to as $POB_BASE.

# Clone the POB GitHub public repository
$ git clone https://github.com/hyperlearningai/pob.git

# Navigate into the POB project folder
# This location will hereafter be referred to as $POB_BASE
$ cd pob

Maven Profiles

Parent Profiles

The following table describes the Maven profiles defined in $POB_BASE/pom.xml.

Profile Name Default Description
apps Yes Manages the lifecycle of all of POB's core services as well as all POB Spring Boot applications across all cloud vendors.
Application Profiles

The following table describes the Maven profiles defined in $POB_BASE/pob-apps/pom.xml.

Profile Name Default Description
apps-multicloud Yes Manages the lifecycle of all POB Spring Boot applications (i.e. serverless function apps and API applications) across all cloud vendors.
apps-spring No Manages the lifecycle of Spring Boot applications designed for development and testing purposes, or for deployment to self-managed or Spring Cloud environments.
apps-aws No Manages the lifecycle of AWS Spring Boot applications designed for deployment to AWS Lambda and AWS Beanstalk apps respectively.
apps-azure No Manages the lifecycle of Microsoft Azure Spring Boot applications designed for deployment to Azure Function apps and Azure Web Apps respectively.

Compile and Build

Please ensure that you have entered the correct configuration into the Spring bootstrap and application property files respectively, appropriate to your target deployment environment, prior to packaging POB. For further information regarding configuring POB, please refer to the POB Bootstrap Configuration and Application Configuration documentation pages respectively. To compile and build POB services and applications from source, please run the following commands via your command line.

# Navigate to $POB_BASE
$ cd $POB_BASE

# Clean the project working directory
$ mvn clean

# Compile, build and package POB
# By default this will build all services and applications
$ mvn package

# If you wish to build POB's core services only, 
# then disable the "apps" Maven profile as follows.
$ mvn package -P \!apps

# If you wish to build POB's core services but only the
# apps intended for deployment to a self-managed environment
# or to Spring Cloud, then enable the "apps-spring" Maven 
# profile as follows.
$ mvn package -P apps-spring

# If you wish to build POB's core services but only the
# apps intended for deployment to AWS, then enable the 
# "apps-aws" Maven profile as follows.
$ mvn package -P apps-aws

# If you wish to build POB's core services but only the
# apps intended for deployment to Azure, then enable the 
# "apps-azure" Maven profile as follows.
$ mvn package -P apps-azure

If you are running mvn package for the first time, it will take approximately 3 - 5 minutes to complete the build (dependent on the speed of your internet connection) as Maven will download all the required Java dependencies for the first time. Subsequent executions of mvn package should take between 1 - 2 minutes to complete.

2.2. Deployment

Assuming that mvn package completes successfully, you are now ready to deploy POB. Please follow the links below for deployment instructions specific to your target deployment environment.

  • Self Managed - deploy POB to a self-managed on-premise, public/private cloud or hybrid environment, integrated with entirely open-source self-managed software services including HashiCorp Vault and HSQLDB.

  • Amazon Web Services - deploy POB to the Amazon Web Services (AWS) cloud computing platform, integrated with AWS managed services including AWS Secrets Manager, Amazon S3, Amazon RDS and AWS Lambda.

  • Microsoft Azure - deploy POB to the Microsoft Azure cloud computing platform, integrated with Azure managed services including Azure Key Vault and Azure Functions.

3. License

POB is an open-source software project available under the MIT License.

4. Acknowledgements

Provided below is the list of organisations and individuals who sponsor, and contribute towards, the development of the POB open-source project.

Organisations

Individuals


5. Contact and Further Information

For further information, please visit the POB documentation website at https://docs.pob.directory or contact HyperLearning AI using the details below.

pob's People

Contributors

jillurquddus avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.