We are studying computer science course. For our final year project, our group is considering making a firewall software with parental control feature.
If we really decide to make a firewall software, the following are the 2 different editions which we will consider, and the features: 1. Desktop editions.
- Most features which we can found in commercial personal firewall software.
- Parental control feature.
- Firewall rules for each network adapter.
- Applications rules.
- When another software has been run, the firewall software will ask the user whether he/she allow the software to access network.
- Game mode. After his mode has been enabled, and when a game has been run in full screen mode, the firewall will temporary allow the game to access network without prompting the users.
- The firewall software can be configured either via command line or GUI front end.
- Password protect the configuration setting.
- When installed on Windows, the firewall software will report its status to Windows. This is to prevent Windows OS from popping up a message stating firewall aoftware is not running, when actually it is running.
2. Desktop + server editions.
- Having all the features of Desktop editions, but also include some additional features as follow.
- When installed on your computer, either a server or just a desktop computer, the firewall software will control network access by the other computers that connect to the network through your computer.
- Can be controlled either by using GUI or web interface.
I have the following questions:
1. Can anyone suggest the libraries that is suitable for this project?
2. If we want the firewall software to be cross-platform, support Windows, UNIX, Mac, and Linux, is it possible?
3. If it is possible to be cross-platform, is it necessary to modify the codes when compiling on different operating system?
4. Beside C++, any other suitable programming language?
5. How do you feel about this project? Is it consider difficult to be implemented?
You can just answer the question which you know how to answer. And, for question no,1 above, please note that we may consider make the project open source if the project is successful, so we recommend that license of the suggested libraries allow us to fully open source our project and distribute the library.
My answer quesion 4: C++ is not a good choice for web apps. It is possible and I work with one such program but it is so poorly written that I wouldn't even try it.
My answer to question 5: The scope of this project is a little large even for a team end of the year project. Stick with developing the more impressive Server controlled edition.