views:

160

answers:

4

I've been making small scale projects for a while now. I haven't started a large project, yet, because I haven't come across anything which I needed and wasn't already accomplished by some other FOSS. Until now. I want to make a program which will allow users to interactively learn secondary languages (I'm kind of want to make it as close to Rosetta Stone as I can).

Right now I'm the only developer since I'm not sure if I'm biting of more than I can chew and don't want to waste any contributors time.

So far I've been planning how the project is going to work and setting up tools to make the project start smoothly and for it to be readily accessible for when other users are ready to contribute to it. I've set up a SourceForge account, a git repository, as well as a document which lists all the features and what the program is going to accomplish.

A basic break down is that the suite is going to be written in java, and the suite will have the ability to support many languages via their locale. The courses for learning the languages will be written in jython. Course-makers will have the ability to use pre-made jython courses to teach their course, or make their own original ones. I'm hoping this will allow for the software to teach copious languages via many mother tongues.

I'm also planning on having a repository of "released courses" which are ones which I (or people who better comprehend the language) think are top-notch courses. This will hopefully make the program seem more professional and secure to the users while allowing third party participation.

With this in mind:

Are there any fatal flaws or suggestions about my project you would like to make?

Is there anything I'm missing about making a big project in general?

Thank you for your time and effort,

Joseph Pond

A: 

Are you also the only analyst, translator, technical writer, and tester? This sounds like a large undertaking for one person. Do you have a deadline? In my opinion you will need at least another developer and tester. Even more if you have tight deadlines.

northpole
I'm hoping that once I have more done it will attract other developers. I'm not the only translator either. I'm hoping once the project gets going many other people will help with the translation. I hope that this will allow a plethora of languages to be supported.
Joseph Pond
A: 

Just find the right person who really agrees with your idea and will take the ownership.

I had been involved in several projects but I dropped out some and only worked on the one I really interested in. So, look at it in the reverse side, looking for a contributor is not easy and must find the person has the things I mentioned about. Then, you can talk about keep contact,, system... project manage..etc. If you can't find the right person, even you have a good system, you are just wasting your time and going nowhere.

Murvinlai
Are you saying I should try to get some contributors right now rather than waiting for the project to have a small code base?
Joseph Pond
Do it in the beginning stage will save you lots of headache. :)
Murvinlai
+1  A: 

You will always be biting off more than you can chew if you don't believe other people should consider your project worth their time. This is much more of a leadership point than a programming point. But seriously, work it out: is this idea something that you believe can happen even knowing that you are currently unprepared for many of the challenges that you are about to face? You've given us a rough outline. You'll be giving others a more thorough explanation, and it will soon become obvious that you've overlooked some stuff. Nobody can keep that from happening to you. Having said that, if you think that you have a good grasp of the requirements of most of the components and you believe you can thoroughly describe the requirements to others with appropriate skills, I'd say go for it.

P.S. -- If you have any mock-ups, that would make it seem like a sweet deal from a prospective developer's perspective. It sounds like the selling point is the extensibility of easily designing new courses. If that's so, give an idea of the basic structure of the Jython. When my supervisor gives me a task that I understand thoroughly, I'd rather he didn't show me how to get started or what design or implementation to use. When I have no idea what he's talking about, the roughest of sketches gives me days of a head start.

David Berger
Where would be a good place to look for prospective contributors?
Joseph Pond
That's another question and one I'm definitely not qualified to answer. My main point above is what would make me feel comfortable following a leader if I were being recruited.
David Berger
A: 

Okay, a couple things. First, it's better never to do a big project. Do lots of small projects instead. If it works out that what you get at the end is a big thing, that's good.

Second, a lot of times what works best for this of thing is to think about how you can make something to make it all easier. in this case, you have two issues: making something that does the various operations needed to display and give feedback (I'm working through a Rosetta Stone course myself, they're pretty cool.)

You're really thinking about a course authoring system; you can't write all the materials for all the languages, so you have to make it easy to do the authoring.

This sounds like a job for a DSL, a domain specific language.

And it sounds like a really cool idea.

Charlie Martin