Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Latest commit

 

History

History
509 lines (491 loc) · 14.7 KB

fund_form.md

File metadata and controls

509 lines (491 loc) · 14.7 KB

The Developer Fund

Following the announcement of a new development fund for growing the Fetch.ai ecosystem, we are accepting applications from prospective projects, either from Cosmos or EVM, to build upon the Fetch.ai network or scale using it's tools.

Please fill the form below to apply for the developer grant.

Name *
Project/Company Name [If available] *
Contact Email (if you're applying on behalf of a project or a company, please enter the email of the main point of contact) *
Project links [Please provide Github, Website, Twitter if available] *
Which category does your project fall under? *
dApps
On-chain analytics
Automation
DeFi
Infrastructure
NFTs
Other:
Project description [Please outline in detail the project you're seeking to receive a grant for] *
<textarea id="projectDescription" name="projectDescription" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
Have you received any funding previously? *
Yes:
No
Please share any details on the project tokenomics [if available] *
<textarea id="projectTokenomics" name="projectTokenomics" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
What do you want to achieve through your project? *
<textarea type="text" id="achievementGoal" name="achievementGoal" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
Project development timelines *
<textarea type="text" id="projectTimelines" name="projectTimelines" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
Project Milestones *
<textarea type="text" id="projectMilestones" name="projectMilestones" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
What is the funding amount you are looking for?
Less than $50,000
Between $50,000 to $150,000
More than $150,000
Funding request breakdown [Please describe how the funds will be used] *
<textarea type="text" id="fundingBreakdown" name="fundingBreakdown" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
Additional attachments [Please share links - e.g dropbox/google drive] *
<textarea type="text" id="additionalAttachments" name="additionalAttachments" placeholder="Your answer" required="required" cols="5" rows="5" ></textarea>
Submit
<script type="text/javascript"> const nameInput = document.getElementById("name"); const projectNameInput = document.getElementById("projectName"); const contactEmailInput = document.getElementById("contactEmail"); const projectLinksInput = document.getElementById("projectLinks"); const projectDescriptionInput = document.getElementById("projectDescription"); const projectTokenomicsInput = document.getElementById("projectTokenomics"); const achievementGoalInput = document.getElementById("achievementGoal"); const projectTimelinesInput = document.getElementById("projectTimelines"); const projectMilestonesInput = document.getElementById("projectMilestones"); const fundingBreakdownInput = document.getElementById("fundingBreakdown"); const additionalAttachmentsInput = document.getElementById( "additionalAttachments" ); const emailErrorField = document.getElementById("emailError"); const submitButton = document.getElementById("submit_btn"); const submitButtonText = submitButton.innerText; const validateEmail = (email) => { return String(email) .toLowerCase() .match( /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); }; const onSubmitHandler = (event) => { event.preventDefault(); const formData = new FormData(event.target); const formProps = Object.fromEntries(formData); let categoryValue = ""; let receivedFundValue = ""; if (formProps.category === "Other") { categoryValue = document.getElementById("otherCategoryFieldValue").value; } else { categoryValue = formProps.category; } if (formProps.receivedFund === "Yes") { receivedFundValue = document.getElementById( "receivedFundOneFieldValue" ).value; } else { receivedFundValue = formProps.receivedFund; } if (formProps.contactEmail.trim() === "") { emailErrorField.innerText = "Email address is required"; return; } else { emailErrorField.innerText = ""; } if (!validateEmail(formProps.contactEmail)) { emailErrorField.innerText = "Please enter a valid email address"; return; } else { emailErrorField.innerText = ""; } submitButton.disabled = true; submitButton.innerHTML = ` `; fetch("{{fund_form_api}}/api/docs", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ ...formProps, category: categoryValue, receivedFund: receivedFundValue, }), }) .then((response) => response.json()) .then((data) => { showSnackBar(data.message); submitButton.removeAttribute("disabled"); submitButton.innerHTML = submitButtonText; resetInputValues(); }) .catch((error) => { showSnackBar("Something went wrong! Please try again later", "danger"); submitButton.removeAttribute("disabled"); submitButton.innerHTML = submitButtonText; console.error("Error:", error); }); }; function resetInputValues() { nameInput.value = ""; projectNameInput.value = ""; contactEmailInput.value = ""; projectLinksInput.value = ""; projectDescriptionInput.value = ""; document.querySelector( 'input[name="receivedFund"]:checked' ).checked = false; document.getElementById("receivedFundOneFieldValue").value = ""; projectTokenomicsInput.value = ""; achievementGoalInput.value = ""; projectTimelinesInput.value = ""; projectMilestonesInput.value = ""; fundingBreakdownInput.value = ""; additionalAttachmentsInput.value = ""; document.querySelector( 'input[name="projectFunding"]:checked' ).checked = false; document.querySelector('input[name="category"]:checked').checked = false; document.getElementById("otherCategoryFieldValue").value = ""; } function selectCategoryOtherRadioButton() { document.getElementById("otherRadioButton").checked = true; } function selectReceivedFundOneRadioButton() { document.getElementById("receivedFundOne").checked = true; } function showSnackBar(text = "", variant = "normal") { const snackbarDiv = document.getElementById("snackbar"); const snackbarText = document.getElementById("snackbar_text"); snackbarText.innerHTML = text; // Add the "show" class to DIV snackbarDiv.className = "snackbar__show"; if (variant === "danger") { snackbarDiv.className += " snackbar__danger"; } // After 3 seconds, remove the class names from DIV setTimeout(function () { snackbarDiv.className = ""; }, 3000); } </script>