SEO Report Verification Web App

Замовник: AI | Опубліковано: 27.03.2026

Build a web application that reads an Excel workbook of SEO reports, checks every URL in every worksheet, analyzes related post content, and produces verification reports. Reporting logic The report must be based on both: worksheet name week or date inside the worksheet This means: worksheet name is the primary reporting bucket each worksheet must also support filtering and reporting by week, date range, or full workbook the user must be able to run: complete workbook report single week report date range report If a date range is selected, the report must state whether data for that period is missing in each worksheet. Primary outcome The app must help review SEO reporting quality by finding: broken or unreachable URLs posts with blank content posts with fewer than 50 words worksheet and week based summaries missing reporting periods by worksheet when a date range is requested Core requirements Excel workbook input Allow upload of an .xlsx workbook Read every worksheet Process all populated rows Preserve worksheet name in all outputs Detect week and date fields inside each worksheet where available Column detection The workbook structure may vary by sheet. Detect common columns such as: URL Link Website Domain Landing URL Landing URLs Submission URL Post URL Post Content Description Caption Date Posted Publish Date Week Support fuzzy matching for headers. URL verification For each relevant URL in each row: validate format attempt request follow redirects record final destination URL record HTTP status code mark as Working, Redirected, Broken, Timeout, or Invalid capture error details If a row has multiple URL columns, check each one separately. Post content verification For each row: inspect post text from the workbook if present mark Blank Post if empty count words flag if fewer than 50 words include URL and post text in exception output If workbook post text is missing but a main page URL exists: fetch page content extract visible text estimate word count store a short excerpt flag if extracted content is missing or below threshold Reporting modes The app must support three reporting modes. A. Complete workbook analyze all worksheets include all rows summarize by worksheet name and by week where possible B. Single week user selects a week value report includes only matching rows across all worksheets summarize by worksheet name for that selected week if a worksheet has no rows for that week, mark it as Missing for that worksheet C. Date range user selects start date and end date report includes only rows within that range summarize by worksheet name and week for each worksheet, state: data found in range no data found in range date column missing, unable to verify range Summary logic The report must use: worksheet name as the main grouping field week as a secondary grouping field when available date for filtering and range validation For each worksheet and selected scope, summarize: total rows reviewed total URLs checked working URLs broken URLs redirected URLs invalid URLs blank posts posts under 50 words weeks found date coverage found missing selected period status Missing period detection When the user requests a week or date range: inspect each worksheet separately determine whether rows exist for the selected period add a worksheet period status Possible values: Present Missing Cannot Verify, no usable date or week column Examples: if Week 12 is requested and a worksheet has no Week 12 rows, mark Missing if Mar 1 to Mar 7 is requested and a worksheet has no rows in that range, mark Missing if the sheet lacks a usable date column, mark Cannot Verify Output reports Generate reports in: Excel Word PDF Output file names: Verification_Report.xlsx Verification_Report.docx Verification_Report.pdf Required report tabs or sections Excel: Executive Summary Worksheet Summary Period Coverage URL Checks Broken URLs Blank Posts Low Content Posts Post Analysis Word and PDF: Report title Source workbook name Generated timestamp Report mode complete workbook week date range Filter details selected week or selected start and end date Executive summary Worksheet summary Period coverage and missing period status Broken URLs Blank posts Posts under 50 words Detailed analysis Required output fields Each detail row should include: source worksheet original row number week value detected date reporting scope period status URL column name original URL final URL status status code error post column name post text word count flag reason User interface Build a simple web app with: workbook upload reporting mode selector complete workbook option week selector start date and end date selector run validation button progress display summary preview download buttons for Excel, Word, and PDF Preferred stack Python Streamlit or Flask pandas openpyxl requests BeautifulSoup python-docx ReportLab, WeasyPrint, or HTML to PDF Functional details Workbook handling support multiple worksheets ignore empty sheets safely handle inconsistent headers where possible log worksheet level issues without stopping the run Date and week handling parse mixed date formats safely support Excel date cells and text dates normalize week values where possible preserve original week labels for output Networking use browser-like user agent set timeout retry transient failures use HEAD then GET fallback allow redirects record SSL, DNS, and timeout failures cleanly Content analysis strip HTML count visible words only ignore navigation text where possible store short excerpt for review treat whitespace-only content as blank Performance avoid repeated requests to the same URL in one run cache URL results handle large workbooks without failing Error handling never stop full processing because one row fails show worksheet and row source for each error include period verification issues in output Acceptance criteria The task is complete when: the app reads a workbook similar to the provided SEO report workbook the app checks URLs across every worksheet the app flags blank posts and posts under 50 words the app produces reports by worksheet name and week the user can run a complete workbook report the user can run a single week report the user can run a date range report the report states whether the requested week or date range is missing for each worksheet the app exports client-ready Excel, Word, and PDF reports Nice to have manual column mapping for unmatched sheets filters by worksheet, week, or status duplicate URL detection branded exports with logo CSV export scheduled runs email delivery Key rule for the developer The report grouping must use worksheet name and week. The filtering must support week, date range, or full workbook. When a selected week or date range has no matching records in a worksheet, the report must explicitly mark that period as missing for that worksheet.