Full-Stack Developer Needed — Agricultural SaaS / Grain Management Web App MVP
Only freelancers located in the U.S. may apply.U.S. located freelancers only
Full-Stack Developer Needed — Agricultural SaaS / Grain Management Web App MVP Project Overview I am looking for an experienced full-stack developer to build the first working browser-based MVP of GrainTrack, a grain inventory, contract, and delivery management application for farmers. The long-term goal is to give farmers one place to track: Grain inventory Grain contracts across multiple elevators/buyers Bushels sold Bushels delivered Remaining contract obligations Bushels still available to sell Weighted average selling price Physical grain by storage location Contract documents Scale tickets Future phases will include AI-powered contract and scale-ticket scanning. For this project, I am ONLY looking to build Phase 1. A starter project package and detailed product specifications are already available. Phase 1 Goal Build a secure, responsive web application that allows a farmer to: Create an account Create a farm Select a crop year Select commodities Enter estimated production Create buyers/elevators Create delivery/storage locations Enter grain contracts manually View contract details Automatically calculate the farm's grain position View that information on a professional dashboard The application should work well on desktop, tablet, and mobile browsers. Core Dashboard The dashboard should display grain information by commodity. Example: 2026 Corn Expected Production: 180,000 bu Physical Inventory: 127,750 bu Contracted: 110,000 bu Delivered: 32,500 bu Remaining on Contracts: 77,500 bu Estimated Available to Sell: 70,000 bu Physical Grain Not Committed: 50,250 bu Percent Sold: 61.1% Weighted Average Final Price: $4.82/bu The dashboard should use clean cards, tables, progress indicators, and alerts similar to a modern SaaS dashboard. UI mockups will be provided. Important Grain Calculations Critical calculations must be performed on the backend rather than independently in the browser. Estimated Available to Sell Expected Production - Total Active Contracted Bushels Example: 180,000 - 110,000 = 70,000 bu Percent Sold Total Contracted ÷ Expected Production × 100 Example: 110,000 ÷ 180,000 = 61.1% Remaining Contract Quantity Adjusted Contract Quantity - Confirmed Delivered Quantity Physical Grain Not Committed Current Physical Inventory - Remaining Contract Obligations Weighted Average Contract Price Sum of: Contract Quantity × Final Cash Price divided by: Total Final-Priced Bushels A simple average of contract prices must NOT be used. Detailed calculation specifications will be provided. Commodities The application must NOT be hard-coded only for corn, soybeans, and wheat. Default commodities should include: Corn Soybeans Wheat Barley Oats Grain Sorghum / Milo Canola Sunflowers Rice The system must also support: + Add Another Commodity Custom commodities should support: Commodity name Default unit Optional standard pounds per bushel Notes All contracts, inventory, deliveries, reports, and calculations should reference a commodity ID. Crop Years Records must be separated by crop year. Examples: 2025 Corn 2026 Corn 2027 Corn The system must NOT assume crop year based on delivery date. This is important because farmers may carry older grain into a new calendar year. Buyers / Elevators Farmers need to create and manage multiple grain buyers. Examples: ABC Elevator XYZ Grain Local Co-Op A buyer may have multiple delivery locations. Locations Locations may include: Farm Bin Grain Bag Flat Storage Elevator Processor Terminal Other Example: ABC Elevator could have: Newark Utica Johnstown as separate delivery locations. Contracts Farmers must be able to manually create grain contracts. Required fields should include: Farm Crop year Commodity Buyer Delivery location Contract number Contract date Contract quantity Contract type Cash price Futures price Basis Futures month Delivery start date Delivery end date Notes Status Contract types should include: Fixed Price Basis HTA Average Price Minimum Price Other Contract Detail Screen Each contract should display: Buyer Location Commodity Crop year Contract number Contract quantity Pricing information Delivery period Delivered bushels Remaining bushels Percent delivered Estimated contract value Status Notes Later phases will attach scanned documents and scale tickets. Pricing Rules Contracts without a finalized cash price must NOT incorrectly affect the final weighted average cash price. Example: 20,000 bu basis contract Basis = +$0.10 Futures = Open This contract counts toward: Total Contracted Bushels but does NOT count toward: Weighted Average Final Cash Price until the cash price is finalized. The architecture should allow pricing components to be expanded later. Database Preferred database: PostgreSQL The database should be relational and designed to support future expansion. Core entities include: Users Farms Farm Users Crop Years Commodities Farm Crops Buyers Locations Contracts Contract Pricing Inventory Transactions Deliveries Delivery Allocations Documents Alerts Audit Records A database architecture specification will be provided. Preferred Technology Preferred stack: Frontend React / Next.js Backend Next.js API or Node.js Database PostgreSQL Authentication A secure managed authentication solution is acceptable. Hosting Modern managed cloud hosting. I am open to recommendations if you believe another stack would be materially better, but please explain why. Architecture Requirements The application should maintain clear separation between: Frontend UI and user interaction Backend/API Business logic and permissions Database Source records Calculation Engine Derived grain-position calculations Critical financial/inventory calculations should NOT be scattered throughout frontend components. Phase 1 Deliverables The developer should deliver: Working browser-based GrainTrack application Responsive desktop/tablet/mobile interface Authentication Farm setup Crop-year management Standard and custom commodities Buyer management Location management Estimated production entry Manual contract entry Contract list Contract detail screen Working calculation engine Grain-position dashboard PostgreSQL database Database migrations Sample/demo farm data Automated tests for important calculations Deployment to a private test environment Source code in my GitHub repository Setup/deployment documentation Demo Data The application should include a demo farm so functionality can be tested immediately. Example: Farm: Greenfield Farms Crop Year: 2026 Corn Expected Production: 180,000 bu Contracts: Multiple contracts totaling 110,000 bu Expected dashboard result: Contracted: 110,000 bu Percent Sold: 61.1% Estimated Available to Sell: 70,000 bu The developer should create automated tests verifying these calculations. Acceptance Tests The project will be considered successful when the following scenarios work correctly. Test 1 — Production Farmer enters: 180,000 bu expected 2026 corn production. Dashboard displays: 180,000 bu expected production. Test 2 — Contracts Farmer enters contracts totaling: 110,000 bu. Dashboard displays: 110,000 bu contracted. Test 3 — Available to Sell System calculates: 180,000 - 110,000 = 70,000 bu Estimated Available to Sell. Test 4 — Percent Sold System calculates: 110,000 ÷ 180,000 = 61.1% Sold. Test 5 — Weighted Average Price Multiple contracts with different quantities and prices produce the correct bushel-weighted average. Test 6 — Basis Contract A basis contract with open futures: counts toward contracted bushels does NOT count toward final cash-price average Test 7 — Cancelled Contract A cancelled contract does not count toward active contracted bushels. Test 8 — Custom Commodity Farmer can select: + Add Another Commodity create a custom commodity, and use it throughout the application. NOT Included in Phase 1 Please do NOT include the following in your Phase 1 quote unless clearly identified as an optional add-on: AI contract scanning AI scale-ticket scanning Native iPhone app Native Android app Live futures prices Grain marketing recommendations Crop insurance Farm accounting Field management Equipment management Weather Settlement processing Payment processing These are potential future phases. Future Phase 2 Phase 2 is expected to add: Physical inventory Farm bins/storage locations Deliveries Scale tickets Contract allocations Remaining contract balances Physical Grain Not Committed calculation Inventory coverage Alerts Strong performance on Phase 1 could lead directly to Phase 2. Future Phase 3 — AI Document Scanning A major future feature will allow farmers to photograph grain contracts and scale tickets. Contract Scan Farmer takes photo. AI extracts: Buyer Location Contract number Commodity Crop year Quantity Price Basis Futures Delivery period Farmer reviews and confirms before a contract is created. Scale Ticket Scan Farmer photographs scale ticket. AI extracts: Buyer Location Ticket number Date Commodity Weights Bushels Contract number The system suggests the appropriate contract. Farmer confirms before inventory or contract balances change. Experience with OCR, document AI, computer vision, or LLM/vision APIs is therefore a significant plus. Security The application will eventually contain important farm business information. Required practices include: HTTPS Secure password/authentication handling Farm-level authorization Secure environment variables Database backups Secure document architecture No cross-farm data exposure Auditability for important changes Source Code & Ownership This is important. All source code produced for this project will be owned by me upon payment. The developer must work in a GitHub repository controlled by me. I must have administrative access to: GitHub Hosting Database Authentication service Storage Domain/DNS when applicable Any third-party services created specifically for GrainTrack The project must not depend on developer-owned accounts that I cannot access. Any third-party/open-source libraries must be properly licensed for commercial use. Documentation At completion, provide documentation covering: Local development setup Environment variables Database setup Database migrations Deployment Authentication configuration How to add commodities How calculations work How to run automated tests Another competent developer should be able to take over the project using this documentation. Developer Qualifications Please apply if you have strong experience with: React Next.js TypeScript PostgreSQL Relational database design SaaS applications Authentication Responsive web applications API development Automated testing Cloud deployment Strong bonus experience: Agricultural software Inventory systems Commodity/grain systems Financial applications OCR Document processing AI/vision APIs Agricultural experience is helpful but NOT required. I can provide the grain-industry/business logic. Budget & Contract Structure I prefer a: Fixed-price Phase 1 project with milestone payments. Target budget: $3,000–$8,000 Please do not simply bid the maximum budget. Provide your proposed fixed price based on the specifications above. If you believe the scope requires more or less, explain why. Suggested Milestones Milestone 1 — Foundation Project setup Authentication PostgreSQL Farm setup Crop years Commodities Milestone 2 — Grain Data Buyers Locations Production estimates Contract entry Contract management Milestone 3 — Calculation Engine Contract totals Available to sell Percent sold Weighted average price Pricing-status rules Automated tests Milestone 4 — Dashboard Dashboard UI Responsive layout Contract detail Filters Demo farm Milestone 5 — Deployment & Handoff Private production-like deployment Testing Bug fixes Documentation Full repository/account handoff Payments should correspond to accepted working milestones rather than elapsed time. What I Will Provide I will provide: Product vision Dashboard mockups Contract screen mockups Inventory mockups Reports mockups Database architecture Business rules Calculation-engine specification API/backend specification Starter project package Example grain contracts/data Grain-industry guidance The developer is not starting from only an idea. Much of the product and business logic has already been defined. Application Instructions Please begin your proposal with: GRAINTRACK This confirms you read the complete posting. Then answer these questions: 1. Show me 2–3 SaaS applications you have personally built or substantially contributed to. Explain exactly what you built on each project. 2. Describe your experience with: Next.js + TypeScript + PostgreSQL 3. How would you structure the calculation engine so critical grain calculations are not duplicated throughout the frontend? 4. How would you handle a basis contract where the basis is established but the futures price is still open? I am not necessarily looking for grain-industry terminology. I want to see how you think about partially complete pricing data. 5. How would you design the database so one farmer can have: Multiple farms Multiple crop years Multiple commodities Multiple buyers Multiple delivery locations without mixing data between farms? 6. How would you prevent one customer's farm data from ever being visible to another customer? 7. What automated tests would you write for the calculation engine? 8. What would your proposed technology stack be? If different from the preferred stack, explain why. 9. What is your fixed-price quote for Phase 1? 10. What timeline would you propose? 11. Are you personally doing the work, or will any portion be subcontracted? If subcontracted, explain which parts. 12. Have you worked with OCR, document AI, or vision/LLM APIs? This is not required for Phase 1 but will matter for future phases. Important I am looking for someone who could potentially continue through Phases 2 and 3 if Phase 1 goes well. I value: Clean architecture Accurate calculations Communication Documentation Maintainable code more than adding unnecessary features quickly. The goal of Phase 1 is to create a solid foundation for a commercial agricultural SaaS product—not to build every possible GrainTrack feature at once.
- Less than 30 hrs/weekHourly
- 1-3 monthsDuration
- IntermediateExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:yesterday
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- United States9:04 PM
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by