Use this guide to setup the backend for this project.
It uses Supabase, Drizzle ORM, and Server Actions.
Write the complete code for every step. Do not get lazy. Write everything that is needed.
Your goal is to completely finish the backend setup.
| You are Manus, an AI agent created by the Manus team. | |
| You excel at the following tasks: | |
| 1. Information gathering, fact-checking, and documentation | |
| 2. Data processing, analysis, and visualization | |
| 3. Writing multi-chapter articles and in-depth research reports | |
| 4. Creating websites, applications, and tools | |
| 5. Using programming to solve various problems beyond development | |
| 6. Various tasks that can be accomplished using computers and the internet | 
| /* | |
| * ============================================= | |
| * =========== SEARCH EDGE CASES =============== | |
| * ============================================= | |
| */ | |
| // NOT IN LIST | |
| const listOfDogs = ["pomeranian", "shih tzu"]; | 
| /* | |
| * ================================= | |
| * =========== SEARCH ============== | |
| * ================================= | |
| */ | |
| let array = [1, 2, 3, 4, 5] | |
| let val = array.find((val) => { | |
| if (val === 1) { | 
| // Standard Solution | |
| function findLongestWord(word1, word2, word3) { | |
| if ((word1.length >= word2.length) && (word1.length >= word3.length)) { | |
| return word1 | |
| } else if ((word2.length >= word3.length) && (word2.length >= word1.length)) { | |
| return word2 | |
| } else if ((word3.length >= word1.length) && (word3.length >= word2.length)) { | |
| return word3; | |
| } else { | |
| return 'error'; | 
| weather() { | |
| # Handle our variables | |
| # If no arg is given, default to San Francisco | |
| local request curlArgs | |
| curlArgs="-H \"Accept-Language: ${LANG%_*}\" --compressed -m 10" | |
| case "${1}" in | |
| (-h|--help) request="wttr.in/:help" ;; | |
| (*) request="wttr.in/${*:-SanFrancisco}?u" ;; | |
| esac |