Inspiration
The Origin of NVP
1. The Search
I began looking for a new vehicle to replace my aging car.
Like many buyers, I turned to ChatGPT for help with:
- Contacting dealerships
- Understanding industry jargon
- Reviewing offers
- Checking whether my targets were realistic
- Drafting negotiation responses
ChatGPT helped separate a strong negotiation strategy from an unrealistic fantasy number.
2. The Problem
The advice was useful, but the process quickly became messy.
There was constant copying and pasting between:
- Dealer emails
- Text messages
- Offer sheets
- Vehicle details
- Negotiation drafts
- Multiple dealership conversations
Each dealer had a different offer, different terms, and a different stage in the negotiation.
Before long, the process became difficult to organize and compare.
3. The Insight
The real problem was not a lack of information.
It was the lack of one organized place to manage:
[ \text{Dealers} + \text{Messages} + \text{Offers} + \text{Targets} + \text{Documents} ]
ChatGPT could help analyze each piece, but the buyer still had to manually manage the entire negotiation.
4. The Idea
That experience became the foundation for NVP — New Vehicle Purchase.
NVP was designed to bring the full car-buying negotiation into one structured workspace.
Instead of juggling multiple conversations and spreadsheets, the buyer can:
- Track every dealer
- Save each offer
- Compare terms
- Store vehicle details
- Set negotiation targets
- Generate stronger replies
- Know when a deal is worth acting on
5. The Vision
NVP turns a hectic car search into a clear decision-making process.
[ \text{Messy Negotiation} \rightarrow \text{Organized Workspace} \rightarrow \text{Smarter Decision} ]
NVP was born from a real car-buying problem: too many dealers, too many messages, and no simple way to see the whole deal.
What it does
Project Story: NVP — New Vehicle Purchase
1. The Problem
Car buying is fragmented.
Dealer emails, text messages, screenshots, lease worksheets, trade values, incentives, and target prices all live in different places. Buyers often focus on the monthly payment while hidden costs quietly change the real deal.
A simple-looking offer can be misleading:
[
\text{True Cost}
\text{Payments} + \text{Down Payment} +
\text{Fees}
\text{Incentives}
\text{Trade Value} ]
The goal was to create one place where the buyer can see the whole negotiation clearly.
2. The First Solution
NVP began as a lightweight negotiation workspace.
Each vehicle and dealer gets its own workspace containing:
- Messages
- Offers
- Vehicle details
- Buyer targets
- Files and screenshots
- Reply templates
- Deal history
The app turns a messy negotiation into a structured process.
3. The Mobile Experience
The interface evolved into a mobile-first workflow:
[ \text{Home} \rightarrow \text{Workspace} \rightarrow \text{Action} \rightarrow \text{Decision} ]
A buyer can quickly:
- Review the latest offer
- Draft a reply
- Enter new numbers
- Compare dealers
- Check missing details
- See the next recommended action
The design uses the NVP Premium Slate theme: clean white surfaces, slate structure, red accents, and clear success indicators.
4. AI as an Assistant, Not the Decision-Maker
AI was added to help with repetitive work:
- Extract offer details from screenshots and PDFs
- Interpret vehicle information
- Improve negotiation messages
- Compare offers
- Identify missing terms
AI results are cached, so repeated work does not create unnecessary cost.
The guiding rule is:
[ \text{AI supports the buyer} \neq \text{AI blindly controls the deal} ]
Manual entry and rule-based features remain available without AI.
5. Subscription and Cost Controls
The app now supports tier-based access:
Free
Basic workspace and manual negotiation tools.
Negotiation Pass
AI reply assistance, document extraction, and offer comparison.
Pro
Higher AI usage limits and future advanced features.
AI actions consume credits based on complexity:
[ C_{\text{reply}}=1,\quad C_{\text{compare}}=2,\quad C_{\text{extract}}=3 ]
Failed requests, cached results, duplicate requests, and placeholder responses cost:
[ C=0 ]
6. The Deal Alert Engine
The app now evaluates every offer against the buyer’s saved targets.
Possible outcomes include:
- Better Than Target
- Target Met
- Near Target
- Review Needed
- Not Qualified
The engine checks more than the payment. It considers available information such as price, down payment, term, kilometres, fees, vehicle match, and missing details.
A simplified score is:
[
\text{Deal Score}
\frac{\sum w_i s_i}{\sum w_i} \times 100 ]
where:
- (w_i) is the importance of each criterion
- (s_i) is how well the offer satisfies it
When a deal reaches the target, NVP highlights it immediately so the buyer can act before the opportunity disappears.
7. Where the Project Is Going
The next stage transforms NVP from a single-user negotiation tool into a full platform:
- Secure user accounts
- User-owned workspaces and data
- Database-backed storage
- Gmail conversation integration
- SMS negotiation channels
- Multi-dealer campaigns
- Approval-based automated replies
- Controlled autonomous negotiation
The long-term vision is simple:
Tell NVP the exact vehicle and deal you want. Let it organize the conversations, compare every offer, and alert you when it is time to close.
How we built it
Building NVP Without Being a Coder
1. Starting With an Idea
I was not a traditional software developer, but I had a clear goal:
Build an application that could simplify the car-buying and negotiation process.
I started with a ChatGPT Plus subscription and used it as a guide to turn the idea into something practical.
2. Learning the Foundation
ChatGPT helped me understand what tools were needed and how the application should be structured.
That included guidance on:
- Installing Python
- Setting up the development environment
- Organizing the frontend and backend
- Running the application locally
- Troubleshooting errors
- Choosing a realistic proof-of-concept architecture
Rather than starting with a full production database, I chose Excel for the first version.
[ \text{Simple POC} < \text{Complex Production System} ]
The goal was to prove that the workflow could work before investing in heavier infrastructure.
3. Building the First MVP
Through a lot of back-and-forth, ChatGPT helped me:
- Define the application structure
- Build the first screens
- Create the backend
- Connect the app to Excel
- Store dealers, vehicles, messages, offers, and targets
- Troubleshoot setup and coding issues
Eventually, the first working MVP was ready.
The idea had become a real application.
4. Moving From Copy-and-Paste to Codex
The next breakthrough came when I asked whether Codex could take over more of the coding work.
Until that point, I was manually copying code from ChatGPT into the project.
Codex changed the workflow:
[ \text{Idea} \rightarrow \text{ChatGPT Prompt} \rightarrow \text{Codex Implementation} \rightarrow \text{Working Feature} ]
ChatGPT helped translate my business ideas into precise technical instructions that Codex could follow.
5. Where the Magic Happened
This became the most powerful part of the process.
I would explain to ChatGPT:
- What I wanted changed
- What was not working
- What looked wrong
- What behavior I expected
- What errors appeared
ChatGPT would then create a detailed prompt for Codex.
I would copy that prompt into Codex, wait for the implementation, and review the result.
When something went off track, the cycle repeated:
[ \text{Observe} \rightarrow \text{Explain} \rightarrow \text{Prompt} \rightarrow \text{Implement} \rightarrow \text{Improve} ]
6. The Real Advantage
The biggest advantage was not that AI wrote code for me.
It was that AI helped bridge the gap between:
- A business idea
- A user experience problem
- A technical implementation
ChatGPT became the translator.
Codex became the builder.
I remained the product owner, tester, and decision-maker.
7. The Lesson
NVP proved that someone without a traditional coding background can still build a functional application by combining:
- Clear ideas
- Iterative testing
- ChatGPT guidance
- Codex implementation
- A willingness to learn
The real magic was not replacing the developer. It was giving a non-developer the tools to think, direct, test, and build like one.
Challenges we ran into
Challenges Along the Way
1. Setting Up the Right Foundation
One of the first challenges was figuring out the minimum set of accounts, tools, and services needed to build the application.
That meant understanding what was actually necessary for the proof of concept and what could wait until later.
The goal was to avoid overcomplicating the setup while still creating a foundation that could grow.
[ \text{Minimum Setup} \rightarrow \text{Working Prototype} \rightarrow \text{Future Expansion} ]
2. Learning to Work With the Terminal
Another major challenge was learning how to use the terminal commands provided by ChatGPT.
This included:
- Activating the Python environment
- Starting the backend
- Running the frontend
- Installing dependencies
- Running tests
- Switching Git branches
- Pulling and validating changes
- Understanding error messages
Even small typing mistakes could stop the process.
Commands such as:
python -m pytest
could behave very differently from:
python - m pytest
Over time, the terminal became less intimidating and more like a validation tool.
3. Balancing Speed and Security
I was also cautious about sharing too much information too early.
That caution slowed development at times, but it was intentional.
I wanted to control:
- What data was stored
- Which files were committed
- Where API keys were kept
- What Codex could modify
- Which folders were considered safe
- Whether local data could accidentally reach GitHub
This often meant adding extra safeguards, backups, protected-file rules, and manual validation steps.
[ \text{Development Speed} \quad \text{vs.} \quad \text{Security Confidence} ]
The process was slower, but it gave me greater confidence in the project.
4. Managing Codex Credit Limits
Another practical challenge was running out of Codex credits during development.
When that happened, work had to pause until the credits reset.
That forced me to become more deliberate about each request.
Instead of sending many small or unclear instructions, I learned to prepare more complete prompts that included:
- The exact goal
- The branch to use
- Files that must not be touched
- Validation requirements
- Expected behavior
- Required test results
- What to report afterward
This improved the development workflow.
[
\text{Better Prompt}
\text{Fewer Iterations} + \text{Less Wasted Credit} ]
5. Learning Through Errors
Many challenges came from unexpected errors:
- Missing dependencies
- Incorrect virtual environments
- Git credential failures
- Patch conflicts
- Build issues
- Branch synchronization problems
- Small command-line typos
Each issue became part of the learning process.
The workflow gradually became:
[ \text{Error} \rightarrow \text{Understand} \rightarrow \text{Correct} \rightarrow \text{Document} \rightarrow \text{Avoid Repeating} ]
6. The Outcome
The challenges slowed the project at times, but they also made the application and the development process stronger.
I learned how to:
- Protect important files
- Create recovery points
- Validate code locally
- Manage branches
- Interpret test results
- Give clearer instructions
- Separate proof-of-concept decisions from production decisions
The hardest part was not writing code. It was learning how to safely guide, validate, and manage an AI-assisted development process.
Accomplishments that we're proud of
Accomplishments and Milestones
1. Building a Custom Application
The biggest accomplishment was turning an idea into a working custom application.
I did not begin as a traditional software developer. Instead, I used ChatGPT and Codex as my AI-powered development and operations team.
Together, they helped me:
- Shape the product vision
- Design the application structure
- Build features
- Troubleshoot problems
- Validate changes
- Manage releases and recovery points
[ \text{My Vision} + \text{ChatGPT Guidance} +
\text{Codex Execution}
\text{Working Application} ]
That was a game changer.
2. Learning PowerShell
At the beginning, the Windows PowerShell terminal felt unfamiliar and intimidating.
Over time, I learned how to use it to:
- Start the frontend and backend
- Activate Python environments
- Install dependencies
- Run automated tests
- Manage Git branches
- Pull and validate changes
- Create backups
- Diagnose errors
Commands stopped feeling like random instructions and became tools I could understand and use with confidence.
3. Understanding Development Practices
Building NVP also gave me a practical view into how software-development teams may work.
I learned the purpose of:
- Feature branches
- Commits and merges
- Protected files
- Unit tests
- Full test suites
- Frontend builds
- Smoke testing
- Backup tags and recovery branches
- Development versus production configurations
The development cycle became:
[ \text{Build} \rightarrow \text{Test} \rightarrow \text{Review} \rightarrow \text{Merge} \rightarrow \text{Validate} ]
I was not just seeing the final product—I was learning how reliable software is delivered.
4. Improving the Original Ideas
Another major accomplishment was learning when my first idea was not necessarily the best approach.
ChatGPT regularly helped me consider:
- Simpler proof-of-concept options
- Safer implementation methods
- Better user experiences
- More realistic pricing structures
- Security and privacy concerns
- Subscription and AI-credit controls
- Scalable architecture for future growth
Instead of simply agreeing with my initial direction, it often presented stronger alternatives and explained the trade-offs.
5. Becoming the Product Owner
As the project developed, my role became clearer.
ChatGPT helped with strategy and translation.
Codex handled much of the technical implementation.
I remained responsible for:
- Defining the problem
- Setting priorities
- Reviewing the experience
- Identifying defects
- Approving changes
- Testing results
- Protecting the project’s direction
[ \text{AI Builds Faster} +
\text{Human Judgment}
\text{Better Product} ]
6. The Bigger Achievement
The real accomplishment was not simply building an app.
It was learning that I could:
- Turn a personal problem into a product idea
- Guide an AI-assisted development process
- Understand enough technology to validate the work
- Make informed architecture and security decisions
- Build something increasingly sophisticated without a traditional coding background
NVP showed me that I did not need to become a full-time coder to become a capable builder. I needed a clear vision, the right tools, and the willingness to keep learning.
What we learned
What I Learned
1. AI Is Only as Good as the Direction It Receives
ChatGPT can help shape ideas, solve problems, and guide development—but the quality of the outcome depends heavily on the quality of the prompt.
A vague request often produces a vague result.
A clear request produces something much more useful.
[ \text{Better Prompt} \rightarrow \text{Better Context} \rightarrow \text{Better Outcome} ]
I learned to explain:
- What I wanted
- Why I wanted it
- What should not change
- Which files were protected
- How the feature should behave
- How the result should be tested
2. Prompting Became Part of the Build Process
Prompting was not just asking a question.
It became part of the product-development workflow.
A strong prompt needed to include:
- The business goal
- The technical constraints
- The expected user experience
- Validation requirements
- Security boundaries
- What Codex should report afterward
This helped reduce misunderstandings and unnecessary rework.
3. Codex Removed Much of the Manual Effort
Codex saved a significant amount of time by handling the actual implementation work.
Instead of manually copying and pasting code file by file, Codex could:
- Update multiple files
- Create new components
- Add backend routes
- Write tests
- Run builds
- Commit changes
- Push branches
That changed the development equation:
[ \text{Manual Coding Effort} \downarrow \qquad \text{Review and Direction} \uparrow ]
My role shifted from typing every change to guiding, reviewing, and validating the work.
4. Codex Still Needs Boundaries
Without full free rein, Codex needs clear guidance.
That guidance is important because it helps protect:
- Existing features
- Local data
- Workbook files
- Environment secrets
- Runtime data
- Git history
- The intended user experience
I learned that giving Codex more context upfront was safer than asking it to make broad changes with limited direction.
5. ChatGPT Became the Translator
One of the biggest lessons was how effective ChatGPT was at translating my ideas into technical instructions.
I could describe a problem in plain language, such as:
- “The screen feels too crowded.”
- “This feature should be locked for Free users.”
- “The app should alert me when the deal hits my target.”
- “Do not let this change affect the workbook.”
ChatGPT would then turn that into a structured prompt Codex could act on.
[ \text{Human Idea} \rightarrow \text{ChatGPT Translation} \rightarrow \text{Codex Implementation} ]
6. The Best Results Came From Collaboration
Neither tool worked best in isolation.
ChatGPT was strongest at:
- Clarifying the problem
- Challenging assumptions
- Planning the approach
- Writing precise prompts
- Explaining errors
Codex was strongest at:
- Editing the codebase
- Implementing features
- Updating multiple files
- Running technical validation
- Managing branches and commits
I learned that the real power came from using both together.
7. The Main Lesson
The biggest takeaway was that AI-assisted development is not fully automatic.
It still requires:
- Clear thinking
- Good judgment
- Specific instructions
- Careful review
- Testing
- Security awareness
ChatGPT helped me say exactly what needed to be built, while Codex helped turn those instructions into working software. The better I became at guiding them, the better the application became.
What's next for Car Negotiation App
What’s Next for NVP
1. Helping Buyers Get More Value
The next step is to move NVP from a personal proof of concept into a tool that can help more people get the best possible deal.
The goal is simple:
Help buyers save money, avoid hidden costs, and get more value for every dollar they spend.
NVP should make the negotiation process easier, clearer, and more confident.
2. Bringing Communication Into One Place
Today, buyers may still need to copy and paste between:
- SMS
- Dealer websites
- The NVP workspace
The next evolution is to connect those communication channels directly to the app.
[ \text{Email} + \text{SMS} + \text{Dealer Replies} \rightarrow \text{One NVP Workspace} ]
This would remove much of the manual work and reduce the risk of losing important details.
3. Email Integration
With email connected, NVP could:
- Import dealer conversations
- Match emails to the correct vehicle workspace
- Extract offer details
- Identify missing information
- Suggest the best response
- Track the full negotiation history
- Alert the buyer when a target is reached
Instead of searching through multiple inbox threads, the buyer would see the entire negotiation in one place.
4. SMS Integration
SMS integration would bring dealer text conversations into the same workflow.
NVP could help:
- Capture inbound messages
- Organize replies by dealer
- Suggest or prepare responses
- Detect new offers
- Compare updated terms
- Keep a complete communication record
This would make the app more useful during fast-moving negotiations, where important offers may arrive by text.
5. Assisted Negotiation
The application could support different levels of control.
Draft Mode
NVP prepares the strongest response, but the user sends it manually.
Approval Mode
NVP prepares the response and asks the user to approve it before sending.
Controlled Automation
NVP responds automatically only within strict rules defined by the buyer.
[ \text{Buyer Criteria} + \text{Dealer Response} +
\text{Negotiation Rules}
\text{Recommended Action} ]
The user should always remain in control of important commitments.
6. Managing Multiple Dealers
A major future feature is the ability to negotiate with several dealers at the same time.
NVP could:
- Send consistent inquiries
- Track separate conversations
- Normalize every offer
- Compare total costs
- Rank the best deals
- Highlight missing terms
- Present the strongest finalists
This would turn a confusing dealer search into a structured competition for the buyer’s business.
7. The Long-Term Vision
The long-term goal is for the buyer to describe the exact vehicle and deal they want.
For example:
- Specific make, model, trim, and colour
- Maximum monthly payment
- Maximum down payment
- Odometer limit
- Required features
- Preferred term
- Trade-in expectations
NVP would then help manage the process from first contact to final comparison.
[ \text{Buyer Goal} \rightarrow \text{Dealer Negotiations} \rightarrow \text{Offer Comparison} \rightarrow \text{Best Deal} ]
The future of NVP is one place to manage every dealer, every message, and every offer—so the buyer can focus on getting the best bang for their buck.
Log in or sign up for Devpost to join the conversation.