This project is an integration platform that connects with various services like Airtable, Notion, and HubSpot. It uses FastAPI for the backend and React for the frontend.
The backend is built using FastAPI and handles OAuth2 authorization and data fetching from Airtable, Notion, and HubSpot.
-
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the dependencies:
pip install -r backend/requirements.txt
-
Create a
.env
file in the backend directory with the following content:REDIS_HOST=localhost HUBSPOT_CLIENT_ID=your_hubspot_client_id HUBSPOT_CLIENT_SECRET=your_hubspot_client_secret
-
Run the FastAPI server:
uvicorn backend.main:app --reload
GET /
: Returns a welcome message.POST /integrations/notion/authorize
: Authorizes Notion integration.GET /integrations/notion/oauth2callback
: Handles Notion OAuth2 callback.POST /integrations/notion/credentials
: Retrieves Notion credentials.POST /integrations/notion/load
: Loads Notion data.POST /integrations/airtable/authorize
: Authorizes Airtable integration.GET /integrations/airtable/oauth2callback
: Handles Airtable OAuth2 callback.POST /integrations/airtable/credentials
: Retrieves Airtable credentials.POST /integrations/airtable/load
: Loads Airtable data.POST /integrations/hubspot/authorize
: Authorizes HubSpot integration.GET /integrations/hubspot/oauth2callback
: Handles HubSpot OAuth2 callback.POST /integrations/hubspot/credentials
: Retrieves HubSpot credentials.POST /integrations/hubspot/load
: Loads HubSpot data.
The frontend is built using React and Material-UI. It provides a user interface to connect to the integrations and load data.
-
Navigate to the frontend directory:
cd frontend
-
Install the dependencies:
npm install
-
Run the React development server:
npm start
- App.js: Main application component.
- integration-form.js: Form to select and authorize integrations.
- data-form.js: Form to load and display data from integrations.
- airtable.js: Airtable integration component.
- hubspot.js: HubSpot integration component.
- notion.js: Notion integration component.
This project is licensed under the MIT License. See the LICENSE file for details.