![]() |
|
#1
|
||||
|
||||
Community Project ProposalGID Community Project INTRODUCTION What the...? That is the question that I hope to answer here. This idea started with a small example that was posted pertaining to the FLTK forum here. It was a small example using a personal contact editor dialog box. This small sample was taken and expanded into an excellent tutorial. This example can be found here. I really liked where this was headed and thought maybe we could make something more of it. Sort of our own GIDForums community project. It will start out small and not do a heck of a lot but ultimately, we hope to build a PIM (Personnel Information Manager) of sorts. Every project needs a name! This one is no different. The name that has been chosen is GIM. This is a stunningly clever combination of GID and PIM (full sarcasm mode on). GOALS Before I list the guidelines for this project, I think it is important to list the goals for this project. This will help (hopefully) in the understanding of the guidelines that follow.
The following are NOT the goals of this project
GUIDELINES Golden Rule
It is a free world, but there are some things that we won't tolerate on the forums. Breaking this may subject your post to be deleted. Obviously, due to the openness of the license, you can really do anything you want with the code - just don't do it here.
If you want your contribution in the "official" release, here are some guidelines to follow.
INITIAL START This project by design should be wide open. That means that there will be a lot of room to operate and overall this thing will be very loosely controlled. However, to avoid it being a complete hodge podge, there must be some common ties. There are two common threads that this project will have. The first is the concept in and of itself. The second is a single header file. This whole project does not work if there is not a single file in common between everything. This header file will define all the data structures that are necessary for data storage. In addition, this file will prototype all the necessary data link calls. This file will grow and change depending upon the overall project needs. Some of the initial rules for this file:
Some of the initial rules for the interface:
Quite simply, everything. But in the same breath, nothing. If this doesn't crank your engine, you shouldn't participate. I want this to be enjoyable and I want it to be a learning experience for all involved. Here are just a portion of the things that I can think of:
I am sure that there are plenty of other things. Even criticism of this idea would be welcome! CONTACTS/LINKS Currently there are only two people that are on board with this.
Home Page www.dbcservices.com/gim.html. This is basically a place to keep the "official" repository. All development will be documented here at GIDForums™. EDIT Web site is up in a very rudimentary stage! __________________
The best damn Sports Blog period. |
|
#2
|
||||
|
||||
|
Sounds like fun 8-). I've been interested in participating in some OSS projects on Sourceforge but have been leary since I really know diddly-squat. I just barely finished C and am still fighting w/ C++. This will be a good way to learn practical programming.
If this goes well I have some other group project ideas in mind; one I thought about a few weeks ago but wanted to see what I could do on my own first. __________________
Common Sense v2.0-Striving to make the world a little bit smarter. |
|
#3
|
|||
|
|||
|
Looks interesting and exciting. I would like to participate as a programmer. I think it would be fun. I am no expert in C but I can give my feedback wherever it matters. Pls let me know the proceedings. I have never worked on programming project in C before. I seek your guidance.
|
|
#4
|
||||
|
||||
|
I am thrilled to see some initial interest in this. I had assumed that it would be cable_guy and myself initially until we were able to produce something. Just so you guys know this is a completely new thing to me as well. It really is a learning experience for all involved. So we need to look at each other for guidance. If you see something that doesn't make sense or will lead to problems, please speak up.
Does the original proposal make sense? Will it make more sense if we get some things started? Also, I have been thinking that a common header text should be inluded in all of the files. Here is what I have so far: CPP / C++ / C Code:
This is for "THE" header file. As for versioning, here is my thoughts. We have three version numbers. The first (right-most) would indicate a change in an existing data structure or prototype. The middle would indicate a brand new addition of a structure & prototype for a completely new module. The last (left-most) would indicate a realease. So the first official release would be known as 1.0.0. Enroute to this version, at some point we would put a freeze on the middle number (no more added modules) and finally a freeze on the first number (no more changes to the header file) to prepare for an actual release. This is only an idea. I am looking for comments, approvals, disapprovals or questions. __________________
The best damn Sports Blog period. |
|
#5
|
||||
|
||||
GIM MOD - Contact ListGIM Module Proposal Module Name: Contact_List Main file name: contact_list.cpp Fluid interface: contact_list.cxx Fluid header: contact_list.h Proposed by: cable_guy_67 Concept: A contact list manager. This is to be an extension of the tutorial FLTK && fluid part 1. The biggest difference will be removing the callback code from the interface code. You should be able to load a contacts book that can be loaded by name so you could have multiple people with their own books. The layout of the interface will be: Name: //single line Company : // single line Address : // 2 lines no wrap Phone : // single line, should format number after enter Email : // single line Notes : // 3 lines with word wrap Category : // drop list that can be added to by user. Default, personal & business. Forward and back arrows to page through the saved contacts. The ability to enter a letter in name or company and find a matching entry. Or a separate entry for finding attached to radios to "find" and entry. I will start a thread in the FLTK forum for the interface design. CPP / C++ / C Code:
__________________
"Opportunity is missed by most people because it comes dressed in overalls and looks like work." --Thomas Alva Edison "Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." --Benjamin Franklin "A happy person is not a person in a certain set of circumstances, but rather a person with a certain set of attitudes." --Hugh Downs Last edited by cable_guy_67 : 17-Nov-2004 at 22:21.
Reason: add header info
|
|
#6
|
||||
|
||||
|
One thought/question: will this be handled like the Linux kernel development? That is, people can propose and write modules but they won't be implemented unless approved by a single person (probably dsmith). Or will people be able to post "willy-nilly" :-) to the project?
This may have been addressed in the opening statement and I just didn't catch it. If so I apologize. __________________
Common Sense v2.0-Striving to make the world a little bit smarter. |
|
#7
|
|||
|
|||
|
Hey Guys,
I think crystalattice has brought up a valid point. I understand that, we all are doing this project for knowledge, learning and for fun. But I think before we start with the coding part, we need to have some guidlines in place for the project. Now that we know what type of software we want to develop, lets first develop a process (or processes) to do that. This will make it easier to track our progress. I recommend we have following phases Design Phase Functional requirements of the software. What we intend to acheive with this piece of software. How it is supposed to work? What features will it support? What are its limitations (no. of contact entries, memory etc).? Design the different modules, APIs in the programs. Define the purpose of each module. Define how it is integrated within the program. Design a pseudo code for each module. Review it for scalability and future enhancement. Design a program build process. Where and How code will be submitted for compiling.? Where all source code will be available.? How to build on local machines ? What is the build schedule? Standardization on programming language for whole program or for each module. Assign the owners to each module, based on the skills and interest. All this can be documented in a post or can be prepared in the format of a simple word document and post it onthe forum. Development Phase Design a code repository for code submission for compilation. Files and Folder structure which will be used in Makefiles. Build Frequency. Daily, Weekly, bi-weekly etc. Code development for each module. Code review. Post the developed module on the forum, for it to be reviewed by others. Submit the code for build after the review. (Someone need to take ownership of building the program). Escalation of problems in build. If the build fails due to errors in the module, respective module owners should be informed, who will inturn fix the code and resubmit it. Post the build in a post. So that everybody can use to test it on their own machines. Testing Phase Design a test plan for each feature supported by the software. Write the test cases in each test plan. Each test cases will explain how to test each feature for different types of data or other inputs and conditions. Review and Update the test plan with others.Provide feedback on test plans. Post the final test plan on the forum. Test the feature. If any bug is found, post it to the forum. The respective module incharge will fix the code and will again submit it for code review with detailed explaination of the problem and how it was fixed. Later it will be submitted for build. Retest the bug with new builds. All these 3 phases will be common for any release of the software. This strategy is out of my own experience and knowledge and it is open for disucssions and comments. I also recommend the format for the post header in each phase. So we can identify ,what each post is pertaining to, easily. In Design phase GIM(1.0.1) For e.g. GIM(1.0.1) In Development Phase GIM(1.0.1) For e.g. GIM(1.0.1) In Testing Phase GIM(1.0.1):TEST:<POST_NAME> For e.g. GIM(1.0.1):TEST:BUG: Segmentation Fault in module Add Contact |
|
#8
|
||||
|
||||
|
Quote:
This will be very similar to the linux kernel development (as I see it). There will be an official version of this that will be accepted by some type of control. However, since this is licensed under the GPL anyone can use this code and "split" the development tree. So if someone wants to do something that is not "official" they are free to do so. In fact, I would actually encourage this. Every project has to have some kind of limits and goals. Someone may come up with a fabulous idea that does not fit within the goals of this project. That doesn't mean that it is a bad idea, just that it doesn't fit here. Does that explain what I am thinking? __________________
The best damn Sports Blog period. |
|
#9
|
||||
|
||||
|
nkhambal. I like your thinking on this quite a bit.
Here are my thoughts. The program itself is fairly loose and should follow the very basic quidelines above. The individual modules should be more structured and defined. I think we should take some of your ideas and create a "GIM Module Proposal Template." People would fill this template out and submit it here for the public to approve, change or reject (for the official release). This template would basically include the things that you have detailed in the design stage. Quote:
I like quite a bit that you have here. Some I want to think about. I personnally don't like "build schedule." I have enough schedules and deadlines in my life that I don't meet all ready. I don't want to add another one. (again this is my opinion) Maybe just a change in terminology would help: Estimated completion date. Also, we may want to cut down on a bit of this for the original proposal. I think that each module development manager can provide a much tighter set of bounds by his/her preference. Am I making any sense? Quote:
Again, I really like this idea. But is this up to the module manager or a "rule". Again, my preference is to make this a guideline. I think it will help attract people to your module production if you are this organized. However, I am trying not to be so rigid as to say it must be done like this. Thoughts? __________________
The best damn Sports Blog period. |
|
#10
|
||||
|
||||
|
Quote:
This is a great first module to include. I have some suggestions as to other fields to consider: I think phone should be split into several catagories.
It seems that everyone has a multitude of numbers these days. Also, I think name should be split into at least two fields. For last & first. Also, we need to decide storage sort order. My preference is simply last name & first name. I will start to make add this modules prototypes and structure to THE header file and post it for your comments. __________________
The best damn Sports Blog period. |
Recent GIDBlog
Last Week of IA Training by crystalattice
| Thread Tools | Search this Thread |
| Rate This Thread | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Need help on a project for C programming | andrew410 | C Programming Language | 1 | 30-Oct-2004 07:01 |
| more array help (simulation project..) | dilmv | CPP / C++ Forum | 6 | 17-Oct-2004 07:51 |
| Help with project. | anignna | C Programming Language | 12 | 27-Apr-2004 07:51 |
| Grub's distributed web crawling project Good for webmasters running servers | jrobbio | Search Engine Optimization Forum | 4 | 25-Jun-2003 08:48 |
Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The