Re: Storing lots of data.
I am not trying to get the wind out of your sales, but this is quite a feat you took on your self.
This is quite a big project that touches on quite a wide range of problems.
From years of experience here is some advice:
Don't worry (yet) about such details as the internal structure of your data files.
This is implementation detail, and can be differed at this point in time.
Take one basic feature and first design it.
When I say design I mean think about what type of work it should do, which input it needs, which output, what type of work it should do.
I would suggest you start with the back end part - all the code that is doing work, not the UI.
Break this work in to responsibility areas, and encapsulated them in classes and methods - without implementing them yet, simply write the interfaces.
Then, start implementing and testing.
Once you finished that little part, take the next.
You will see how with each step of the way much of what you think today about how your application should look like will change.
Feel free to ask here any specific questions about problems you may encounter.
Re: Storing lots of data.
I personally would prefer to store all of the data in a database rather than have individual files for each item. The primary reason would be the ability to search for content. If you store all of the content in individual files, you'll either have to build/maintain an index to provide reasonable search capabilities or open each item and search contents dynamically when the user wants to find a piece of data.