I am an intern for a health company (unpaid), let's call it Company A and I noticed that they are using a lot of paper form for things that can be done on the computer. Excel files for things that shouldn't be in Excel. So I wanted to improve on my programming and figured that it was the best opportunity to do.

I developed a couple of apps for their use. All these applications were outside company time. One application I did and they love and one of the director has a brother who has a health start up company. He wants me to give over my source code so his brother's company can further develop it and maybe sell it (I am out of the equation).

I have no intention of handing over my code as I put a lot of time outside doing it but I also don't want to burn bridges with anyone in the company. I can't go to the director and tell him "I don't think so". 

I am fine with demoing to the brother how it works but the line is giving up my code. If they want to build something like it then they can go right ahead I have no problem with it.

What is the correct way of approaching this and do they have the right to do this to me?

Edit: there is no contract I never signed anything

IANAL.  Contract does matter here.  That's all I can say on that and I won't repeat the advice everyone else has given.  The company may already own it and you have no say in the matter.  Even a lawyer would tell you to hire a lawyer if you decide to simply say "No".  So if that's your choice, hire a lawyer.

I read and re-read this question until I figured out why you care about Burning Bridges.  I'm guessing that your real concern is that, as an intern, you're not looking for a million dollars.  Heck, you don't specify that you're a software development intern, which may mean that you didn't go into this intending to be a programmer. I think what you're really looking for is the company to show respect for your work. You may have even surprised yourself with how well this project turned out and maybe you want to move into a new career path as a software developer.  This is something to be proud of.  This project is a big deal, don't clutter this with needless crap by taking one thing your boss said and blowing it out of proportion.

The Boss Perspective

First and foremost, remember that your boss is human.  He makes mistakes just like everyone else.  Second, you also need to consider that your boss may not know anything about software.  You showed him something cool, which he is thinking "Cool, my brother knows software; he could do something with this."  He doesn't know it took you a lot of time.  It's likely he might not even know that you're still an unpaid intern.

How To Think About It

First, I'm going to tell you that you can win this.  Even if this company has you under the nastiest contract known to man, in the most anti-employee market on earth, and you have an  extremely mean boss, this is still a winnable situation.  You could quite easily get them to understand your worth here.

The question is, how do you want them to demonstrate that they care about your work?  Do you really want to get paid for this project?  Based on the fact that you are willing to demo the software, I'm guessing you don't much care about the payment part, but more the fact that you worked really hard and want to be acknowledged for it.  If you'd like a permanent position at the company in exchange, then make that evident.  If you think you'd like to move into software development, maybe you could ask about being moved into the brother's company in a real, paying position.

The bottom line is, before you can approach your boss about getting what you want, you have to truly decide what you want.

How To Approach The Boss

First thing's first, don't try to catch the boss while he's walking between meetings.  Set up an appointment.  You may only need five minutes, but five minutes is a lot of time when you're running a company.  Talk to him and ask about times that work for him and put the appointment on his calendar if you can.

With the appointment set up, you need to go in prepared.  Have an outline of the points you want to make on a piece of paper with you so you don't get nervous and forget everything.  Remember that more people list Public Speaking as their number one fear than Death.  You will forget stuff, so write it down.  Going in prepared also looks good to the boss.  It shows him you're not trying to waste his time.  Even the most anal of bosses relaxes a bit when he sees you've prepared what you're going to say.

What To Say

Nothing is more valuable to a manager than numbers.  If you grab a BLS statistic or two, you're more likely to get his attention.  If you can, calculate the potential value to his company in real dollar amounts and put it in front of him.  Show him that you're worth something in terms of time, sales, or if you can, flat dollar amounts.

Use of buzzwords only helps if your boss is into that sort of thing.  It's important that you stay on point.  Your boss doesn't care about how you wrote that program.  He wouldn't understand it if you explained it.  He just wants to hear about why you think it's worth something to him.

Don't get personal.  Like I said, the boss isn't going to speak your language.  Don't spend time explaining some really challenging bug you overcame when writing the program.  It's a black box to him.  As far as he's concerned it cost you nothing to write it.  Instead, throw numbers at him as to cost to you, in terms of time and money.

Look at the things he's said in the past and try to associate it with the work you've done.  If you've worked with the boss before, this can be easy. Associate the work you've done with specific complaints he's made in the past.  Demonstrate how you're fixing problems he's encountered and why you're worth it.

It Can Be Done

I can tell you in all honesty this is doable.  I've sold these sorts of ideas in the past.  It's just a matter of doing it right.  Think about the things he's thinking about and speak his language and you truly can get what you want out of this.
