![]() |
Project Ideas
I thought I'd post this here as the Project Ideas forum is for sayign your ideas rather than askign for them.
In a week I am going to do my Work Experience with a programming company. Basically for 2 weeks I work there to get experience. They said I need to think of a project to complete in the 2 weeks that I am there. The trouble si I can't think of a project and I need your help. They said that teh last person made a php/mysql system for managing phone calls (to give you an idea of the complexity that they want). So I've given it some thought and haven't managed to come up with any ideas. I want to write an application that runs on the desktop rather than browser based. And I want to use Python to do it. The project will need to take me 2 weeks to complete and I want it to make me learn something new. I will take any suggestions that you can give. So far I only thought of making a MSPaint clone but that seems boring and not very imaginative :-( ~Cold |
Well if you want something to do that is visual then making a basic vector drawing program will be more challenging than just a bitmap editor. It will make you have to think about some basic maths, simple 2D drawing, printing(which might involve scaling) and designing a file format to store your drawings in. There is plenty of opportunity to add other festures too. Python would be ok, even java would do. Dont get all bogged down in what language to use. Use a language you are most productive in and that enables you to do what you want. Dont try to learn a new language or API from scratch as it will slow you down too much. If you make something that is visual then you will have something nice to show for your efforts when you finnish the work experience so you can show off.
Two weeks is quite short for a project so dont spend too much time thinking about what to do. Get an idea and do some planning. First think what you can reasonably achieve in two weeks, so dont go overbaord on the features. Then come up with a basic plan with maybe some UML diagrams. You can skip most of the details such as UI design and a testing plan. Then start coding and try to test as you go along. When I did my two weeks of work experience a few years back I was set a project. You are quite lucky that you can make your own choice. If you decide to make something that is too complex you might not have something that works by the end of the two weeks. Start simple and you can always add features if you find you have time. Have fun. :) |
Quote:
You could construct a "diff" like program that compares two files together via a GUI, highlighting the differences. You could use wxWidgets or PyQt for that. You could make a GUI to apply PIL image transformations to a user-selected list of files (for instance, one could select a set of photos to be rotated through 90 degrees, or convert a set of PNGs to JPEGs). |
A multi-threaded chat client and chat server that uses your own protocol? You'd learn a great deal about programming if you did that.
|
Quote:
|
Quote:
Days 1-3 : Basic Sockets Days 4-9 : Single Threaded Server & Client Days 10-12 : Add Multi-Threading Days 13-14 : Testing/Debugging Assuming Jack's got 3-6 hours of uninterrupted work every day, he should be able to get it done. If he keeps focused. ;) |
What about a disk space viewing tool, something like spacemonger (except that you can scan just subdirectories :) )
|
I think whatever you decide to do dont just jump in and code. If you do that you will waste time as you will be changing things all the time. Spend a few hours at least thinking about how the program will be structured and what the specification will be. Keep it simple. You can always go back and add more features if you find you have time. Also try to write something in an area that you are intested in. The ideas other people have put forward have been good but try to think about what you enjoy. If you like grahics do a game or some sort of drawing app. If you like networks then do some sort of client server app. If you like writing useful utilites then do that.
Another option is to think of a program you have used and found to be poorly designed or buggy and then write your own version based on how you want it to work. Or maybe draw your inspiration form a non computer related hobby. Maybe you are a musician and then for example you could write an app that lets you compose music. The best projects are always ones where the author has a passion for what they are doing. They have a need for the app they will think about what they want it to be and it will be done to the best of their ability. It will end up being a usefull program that works well. If you just choose an idea at random you might find after a few days that you have little interest in it and then the standard of the program will be poor and you will not enjoy your work experience as much. |
Quote:
|
Thanks for all of the input. I'm not that interested in networking, and the paint clone was only though of because I couldn't think of much else. I don't really have any inspiration right now.
The main thing is I want to be able to complete it before 2 weeks is up, but I don't want it easy enough to be completed in 2 days. Come to think of it I think I do want to do the paint clone. Or something to do with modifying images. So wxPython and PIL is the way to go I think. Maybe I'll design it to be simple and then improve on it if I have time, the only thing is I'm not great at maths. |
| All times are GMT -5. The time now is 12:51 AM. |
Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC