Home مقالات عامة أفكار لبرامج صغيرة للمبرمجين
أفكار لبرامج صغيرة للمبرمجين

أفكار لبرامج صغيرة للمبرمجين

6.61K
33

كثير من المبرمجين بحاجه الى أن يطبقوا مشاريع يأخذوها منها الخبرة وتساهم في تعزيز فهمهم للغه التي يبرمجوا بها، وحتى نخرج من اطار الأمثلة التقليدية وبرنامج “المضروب” الشهير في الجامعات سوف نعرض أمثلة حية لبرامج ونوضح كيف تعمل بالاضافه الى الفائده التي ستخرج منها بعد تطبيقك لهذه الفكرة.

المشاريع عملية جداً وهي تصلح للطلاب الجامعيين أو حتى الهواه ومن يحتاج لمشروع يصقل مهارته فيه، فمنها تستطيع التعلم بشكل أفضل ، ومنها تستطيع وضعها على سيرتك الذاتيه، خاصه اذا كنت واضعها بشكل مفتوح المصدر Open Source هكذا ستتعلم وتستفيد وتفيد غيرك بالبرامج والأكواد اذا كانت مفيدة.

ملاحظة: سيتم تحديث القائمة بشكل دوري حتى نصل لأكثر من 30 فكرة مشروع جيدة ومفيدة، قم بالزيارة الدورية حتى ترى التحديثات، الأفكار الجديدة سوف تضاف أولاً في القائمة، ويمكنك ان تضيف اي افكار اخرى وسوف نضيفها باسمك 

 تم تحديث المقالة بتاريخ 25/9/2013

 

برنامج لتحميل فيديوهات اليوتيوب

هناك الكثير من الدورات التعليمية على اليوتيوب وقد تريد حفظها لكي تحضرها لاحقاً، الفكرة بعمل برنامج يأخذ الرابط لقناه معينة ويقوم بتحميل كل ال Playlist مع توفر خاصية تحويل الفيديو الى صيغ اخرى مثلاً لل IPhone أو xVid حتى يكون اكثر فائده

مثال لبرنامج مشابه:

youtubedownload

رابط البرنامجhttp://download.cnet.com/YTD-Video-Downloader/3000-2071_4-10647340.html

المستوى: متوسط ، أي شخص تعلم اساسيات الملفات وعمل واجهات المستخدم والتعامل مع الشبكة Network Programming والتعامل مع أكثر من Threads.

الفكرة بواسطة: https://twitter.com/mmot33

 

برنامج لاستخراج ومسح المحفوظات من متصفحات الانترنت

اغلب المتصفحات تحتوى على كمية كبيرة من البيانات التي تود ان تحذفها في حال سينتقل الجهاز لشخص أخر، سواء كنت في مكان عام، أو بالعكس تريد استخراج المحفوظات لجهاز اخيك الصغير مثلاً وتريد معرفة نوعية المواقع التي يتصفحها

مثال لبرنامج مشابه:

firefox

رابط البرنامجhttp://www.nirsoft.net/utils/mozilla_history_view.html

المستوى: سهل لمتوسط ، أي شخص تعلم اساسيات الملفات وعمل واجهات المستخدم والتعامل مع قواعد البيانات SQLite

مراجع مفيدة :

مقدمة في تحليل جرائم الانترنت Internet Forensics

 

1) برنامج ايجاد نوع ال Encoding في الملف النصي:

أي ملف نصي Text File يكون لديه ترميز معين حتى يمكن للمحرر عرضه بالشكل الصحيح، فالملفات التي تستخدم ترميز  ال Unicode في الغالب لديها علامه غير مرئية في أول الملف تسمى BOM توضح لك ما هيه هذه الملف ، الأن فكرة البرنامج كلها عن طريق قرائه ال BOM وهي تكون أول 2 الى 4 بايتات ومن ثم يمكنك التعرف على نوع ال Encoding المطلوب.

مثال لبرنامج مشابه:

File_BOM_Detector

رابط البرنامجhttp://www.bryntyounce.com/filebomdetector.htm

الفائدة منه: سوف تتعلم كيفية القرائه والكتابه من الملفات في لغة البرمجة ، وسوف تتعلم طرق الترميز المعروفة ومالفرق بين UTF-8 و UTF-16 والخ  وسوف تتعلم ما هيه ال BOM.

المستوى: سهل لمتوسط ، أي شخص تعلم دوال I/O والقرائه من الملفات مع عمل واجهات المستخدم GUI يستطيع عمله، اذا كنت مبرمج جديد مثلاً تستخدم لغه السي++ ولا تعرف كيف يمكن عمل الواجهات فيمكنك عمله Console Application على الشاشه السوداء.

مراجع مفيدة لكي تتعلم اساسيات ال Encoding:

أساسيات لا بد لأي مبرمج معرفتها (ال Encoding)

 

2) برنامج تعديل الصور المقلوبة Image Rotation:

كثير من الأحيان بعد أن تلتقط الصور من جوالك وقمت بنقلها الى جهازك سوف تجدها مقلوبة ، وتحتاج الى فتح محرر الصور في ويندوز وقتوم بقلبها يدوياً (هذا ما حصل لي بعد التقاطي صور من ايفون وجالاكسي ومشاهدتها على ويندوز 7) المشكلة تكون في حال كان لديك صور كثيرة 3000 صورة مثلاً) والمشكلة الأخرى أن مستعرض الصور في ويندوز يقوم بمسح بعض المعلومات المهمه في الصورة metadata عندما تقوم بعمل التدوير Image Rotation.

المطلوب: برنامج يقوم بتعديل الصور Image Rotation الموجودة في المجلد المحدد بدون تقليل جودة الصورة (لأن الصور JPEG عندما يحصل لها تدوير فهذا يقلل من جودتها، جرب أن تقوم بفتح صورة وقم بتدويرها مرات كثيرة وسوف تكتشف بأن الجودة قلت). هناك طرق متقدمة في تعديل الصورة بدون الاخلال بحجمها لكننا سوف نبدأ بالأسهل وهي عن طريق استخدام مكتبة جاهزة أو Command Line نستدعيها من برنامجك.

مثال على برنامج:

jpeglossless3

الفائدة من المشروع: سوف تتعلم امور كثيرة بخصوص الصورة والتعامل معها والهيدر Exif، سوف تتعلم كيف تقوم بعمل برنامج يتعامل مع I/O وقرائه الصور ، سوف تتعلم كيف تستدعي Command Line من برنامجك تقوم بعملية ما (سوف نستدعي مكتبة تسمى jpegtran تقوم بالعملية) هذه المكتبة تستخدم من قبل أكثر من 84 برنامج وبرنامجك ان شاء الله سوف يكون من ضمنهم) النسخ التالية من المشروع هي البدء بالعملية من الصفر اذا اراد المبرمج ان يتعلم اكثر عن الصورة والعمل عليها. ايضاً اذا قمت بدعم ال Right Click مثل الصورة التي فوق سوف تتعلم بعض الامور عن ال Shell Extensions في الWindows وكيف تضع برامجك على هذه الخانه Right Click Menu

المستوى: متوسط

المشاركة: يمكنك البدء من الصفر لو أحببت ، لكني في السابق قمت بعمل واجهه لذلك واستخدمت الcommand line  ويحتاج كثير من  التحسينات واضافة Thread مع Progress bar لدلاله على ان العمل ما زال في الخلفية (المشروع هنا مفتوح المصدر برنامج مدور بسي++ مع Qt ، وهذه صورة منه):

modawer

 

3) برنامج حمايه الصور Image Protection:

الفكرة أنه اريد ان احمي صوري بحيث لا يستطيع احد عرضها الا من خلال باسورد ، عندما تقوم بتحديد الصورة وكتابه الرقم السري سوف يتم تشفير الصورة ووضعها بشكل لا يمكن عرضه ولا يمكن فتحها الا بالبرنامج مع الرقم السري.

مثال برنامج مشابه:

PhotoCrypt_1

الرابطhttp://www.softpedia.com/get/Security/Encrypting/PhotoCrypt.shtml

الفائده من المشروع: سوف تتعلم قرائه الملفات I/O ، والتشفير المتناظر Symmetric Encryption وتقوم بتشفير الصورة بالمفتاح (الرقم السري) وفك تشفيرها ايضاً.

شرح للبرنامج بالعربي: من موقع المحترف وللأسف أغلب المواقع العربية تحتوي شرح لبرامج وفي الأساس يمكن للمبرمجين العرب القبام بها بكل سهوله والاعتماد على النفس بدلاً من البرمجيات الاجنبية.

المستوى: سهل لمتوسط

 

4) برنامج ايقاف الشبكات الاجتماعية:

الكثير منا اثناء العمل قد يفتح احدى الشبكات الاجتماعية ويبدأ بالحديث والقرائه ويضيع وقته وهو لا يدري ، فيمكن عمل برنامج يقوم بايقاف كل الشبكات الاجتماعية اثناء ساعات تحددها أنت (ساعات عملك) حتى تستطيع التركيز في العمل. المشروع يمكن عمله بشكل تجاري بعد ان تبدأ فيه.

مثال:

antisocial_windows2

رابط المشروع:  http://anti-social.cc/

الفائدة من المشروع: سوف تتعلم كيفية الدخول والتحكم في مجرى البيانات الداخلة والخارجة من جهازك ، سوف تتعلم اساسيات ال DLL وكيف تقوم بعملها، وسوف تتعلم اساسيات في برمجة الWindows.

مستوى المشروع: متوسط

 

5) برنامج حذف الملفات المكررة:

في الغالب يحتوي جهازك على الكثير من الملفات المكررة ولكنك نسيتها، هذا البرنامج يقوم بعرض كافه الملفات المكررة لديك حتى تقوم بحذفها وبالتالى يقلل من استخدام المساحة الموجودة لديك على القرص.

مثال:

howtoduplicatecleanerwin

الرابطhttp://www.digitalvolcano.co.uk/duplicatecleaner.html

الفائده من المشروع: تعلم التعامل مع الملفات I/O، كيف تحسب ال Hash للملفات ، وكيف تقوم بعمل Traversal على الملفات الموجودة في المجلد  (دعم البحث داخل المجلدات الفرعية Nested Sub-folder) ، وكيف تقوم بعمل Thread مع Progress bar حتى يتم الانتهاء من الحذف.

المستوى: سهل لمتوسط

 

6) برنامج المتحكم في الكاميرا:

كم مرة اشتريت لابتوب جديد وقمت بالصاق شريط على الكاميرا الموجودة فيه، الآن سوف تحافظ على منظر لابتوبك وتتحكم في الويب كام كيفما تريد

مثال:

image001

الرابطhttp://www.mywebcamlock.com/

الفائده من المشروع: يمكن ان يكون تجارياً وتكسب منه، سوف تتعلم امور متقدمة في الويندوز وكتابه Drivers يعمل على مستوى الكيرنل حتى تتحكم جيداً بالجهاز (في السابق قمت بعمل شيء ممثال عن طريق ال Hooking ولكنه كان Alerting وليس تحكم فيه).

المستوى: متقدم

 

7) برنامج كسر الملفات المضغوطة:

كثيراً ما يكون لديك ملفات مضغوطة برقم سري ولكنك نسيت ذلك الرقم، فيمكن استخدام البرنامج وبالاستفاده من قدرات جهازك بمحاولة لكسر هذا الرقم السري

مثال:

zippasswordunlocker_mainscreen

الرابطhttp://securityxploded.com/zip-password-unlocker.php

الفائده من المشروع: سوف تتعلم كيفية الاستفاده من ال Cores في جهازك في محاولة تخمين الكلمة، سوف تتعلم عن المصطلحات المعروفة في أمن المعلومات مثل Brute Force Attach و Dictionary Attack وكيف تقوم بهذه الهجمات ، سوف تقوم بعمل خوارزمية لتوليد النصوص والارقام بعدة لغات.

المستوى: متوسط

 

وفقة حول برامج موقع Security Exploded

الموقع http://securityxploded.com فيه كمية جيدة من البرامج الخاصة بالحماية Security والتي يمكنك عملها لو أردت انظر لقائمة البرامج لديهم وهي في ال Password Cracking و ال Network Security وايضا بعضها في حمايه الSystem، هي برامج اغلبها سهله ويمكنك القيام بها خصوصاً لو تعلمت أساسيات البرمجة في ويندوز ستجد أنك تستطيع ان شاء الله برمجه أغلب القائمة الموجودة وعمل برامج مماثله بالعربي. فيمكنك ان تستقى الأفكار والبدء بعمل مشاريعك بلغتك واستهداف الشريحة التي ترغب بها.

 

8) برنامج وضع معلومات الجهاز على سطح المكتب:

اذا كنت مدير لعده انظمة وكل دقيقة تقوم بالوصول البعيد لسيرفر موجود Remote Access فقد تنسى ان السيرفر المفتوح امامك هو سيرفر قاعده البيانات والسيرفر الثاني هو للموقع ، وقد تضيع وقتك بالقيام بعمليات خاطئة، هذا البرنامج يسهل لك ويضع لك معلومات الجهاز فوق الخلفية حتى تستطيع بلمح النظر معرفة نوع هذا السيرفر.

مثال (للمبرمج الخبير مارك، أحد أفضل مبرمجي الويندوز على الاطلاق، صاحب ادوات SysInternal):

bb897557.BgInfo(en-us,MSDN.10)

الرابطhttp://technet.microsoft.com/en-us/sysinternals/bb897557.aspx

الفائده من المشروع: سوف تتعلم كيف تفتح صورة وتكتب فوقها وتضعها كخلفية على سطح المكتب، أو يمكنك عمل برنامج يعمل في الخلفية وتقوم بعمل نافذه بدون اطار شفافه وتكتب فيها المعلومات حتى تتحدث من فترة لأخرى على حسب المعلومات التي تود اخراجها، ايضاً ستتعلم كيفية الحصول على المعلومات مثلاً اسم الجهاز، عنوان الايبي، المعالج والذاكرة والخ من المعلومات.

المستوى: متوسط

 

9) حذف الأكواد الخبيثة من صفحات موقعك:

احياناً يصاب موقعك بكود جافا سكربت خبيث يصيب كل الملفات على السيرفر، وبالطبع عمليه ازالتها يدوياً أمر مكلف، فالفكرة هنا بعمل برنامج يقوم باستقبال كود الفايروس ويقوم بالدخول في كل الملفات في المجلد ومسح تلك الجزئية من الملف.

مثالhttp://www.maliciouscodecleaner.com/

الفائدة من المشروع: تعلم كيفية البحث عن نص داخل ملف، وحذف جزئية معينة من الملف، والبحث Iterations في الملفات داخل مجلد معين.

المستوى: سهل

 

10) برنامج حفظ كلمات المرور:

هذه الأيام قد يوجد لأي مستخدم اكثر من 10 حسابات موزعة بين ايميلات ومواقع وحسابات بنكية وغيرها ، حفظ هذه المعلومات في ملف نصي أو في بريد قد يعرضها للسرقة لذلك عليك بحفظها في مكان واحد مشفرة بحيث لا تفتح الا برقم سري

مثال:

Add-400x284

الرابطhttp://www.thewindowsclub.com/passbox-download

الفائده من المشروع: سوف تتعلم عمل قاعدة بيانات صغيرة مشفرة أو ملف مشفر بخوارزميات التشفير مع واجهه مستخدم جميلة.

المستوى : سهل

 

اخيراً:

  • القائمة سوف تتحدث باستمرار
  • القائمة خاصه بتطبيقات سطح المكتب وسيتم عمل موضوع اخر لتطبيقات الويب والموبايل ان شاء الله
  • القائمة مناسبة للمتعلمين او من يودوا العمل على مشكله ما
  • يمكنك تطبيق اي من هذه المشاريع باللغه التي تود ، و تذكر أن حل المشكلة بتطبيق هو اهم من اختيار اللغه بدون حل لمشكلة
  • يمكنك الرد في هذا البوست واضافة افكار اخرى تراها مناسبة لاثراء الموضوع

(6605)

وجدي عصام مهندس برمجيات مهتم بعلوم الحاسب وبالأخص مجال الخوارزميات وهندسة البرمجيات وحماية التطبيقات،

Comment(33)

  1. dear Mu friend wajdi … thank you a lot for this information … am very happy for this..

    i want to start programming like professional programmers … and you show us the way

    so thanks you …for this big work

    i hope you good time

    keep it up

  2. طب اخي انا حملت المشروع هو عبارة عن مشروع جاهز انا فتت ع مواقع اجنبية متل هيك افكار بيعطوك الكود مشان تتعلم هون الكود موجود شي ؟

  3. لو سمحت دى عبارة عن المشاريع جاهزة ….بس بدون الاكواد ………..فى بعض المواقع الاجنبية بتنزل المشاريع والاكواد علشان نشوفها ونبدا نعمل زيها الاول وبعدين نطور

    1. نعم هذه أفكار ، والمغزى من الموضوع هو تحفيز المطورين على بناء برامج ،،

      هناك الكثير من المواقع المشاريع المفتوحة ، ويمكنك البحث عنها في مواقعها المعروفة ، يمكنني تزويدك بها ان اردت ،،

      لكن المشاريع التي وضعتها هنا وخصوصاً المستوى “السهل” يمكنك عملها بدون الحاجه للنظر لمشروع اخر ، فاذا كنت تعرف اساسيات اللغه + التعامل مع الملفات + عمل الواجهات فيمكنك برمجتها بسهوله..

      جرب ان تبدأ بأي مشروع في حال كانت الاساسيات لديك موحودة ، ونستطيع ان شاء الله مساعدتك وتوجيهك حتى تكمل أول برنامج لك بنجاح.

      بالتوفيق،

    2. السلام عليكم
      ممكن تساعد فى البرنامج الخاص بحماية الصور ….يعنى وفر لى الاكواد والحاجات المطلوبة لعملة ودى كبداية
      انا بدأت فى اكتر من لغه بس للاسف مكنتش بعمل اى application
      فاريت تساعد فى ده على الاقل يكون عندى القدرة انى انشأه حتى لو موجود قدامى وده هيبقى تحفيز لى كى اطور او انشأ الجديد ….
      وجزاك الله خيرا على هذا العمل المفيد ….

    3. السلام عليكم
      ممكن تساعد فى البرنامج الخاص بحماية الصور ….يعنى وفر لى الاكواد والحاجات المطلوبة لعملة ودى كبداية
      انا بدأت فى اكتر من لغه بس للاسف مكنتش بعمل اى application
      فاريت تساعد فى ده على الاقل يكون عندى القدرة انى انشأه حتى لو موجود قدامى وده هيبقى تحفيز لى كى اطور او انشأ الجديد ….
      وجزاك الله خيرا على هذا العمل المفيد ….حضررتك ممكن ؟؟؟؟

  4. بو سمحت اخي انا سنة تانيه هندسة اي تي ولكن للاسف ماعندي فكره كتير عن هدا المجال ماكتير بفهم هي اللغات ممكن تساعدني كيف ممكن ابدا اطور من نفسي

    1. يمكنك البدء من خلال قرائه أحد الكتب الجيدة في لغه واحدة ، وبعد ذلك تستطيع البدء في تطيبقك، اختر اي لغه جيدة تريد تعلمها وابدء بها ويمكنني تزويدك بالروابط والكتب المفيده لها، وGoogle فيه ما يكفى ايضاً وزيادة.

  5. السلام عليكم

    ألف شكر أخي وجدي عل هذا الموضوع الرائع والنادر جداً في مجتمعنا العربي على الانترنت ان نجد مثل هذه المواضيع وكم يثلج الصدر ان نجد ان هناك أناس تفهم وتعرف نقص الويب العربي وتحاول ولو بالقليل ان تجبر هذا النقص
    خطوة تشكر عليها وانا أتشرف أن أكون من المتابعين لك ولمدونتك الرائعة وننتظر المزيد

    ولك كل الشكر

  6. الله يجزيك الخير اخي الكريم

    بصير تبعتلنا ع الايميل اخر الاضافات للمشاريع عشان ما يروح علينا ولا فكرة ..

  7. يسلمو على الموضوع …. انا طالب علم حاسوب سنه ثانيه …. وخبرتي ضعيفه كثيير …. بشو بتنصحني ابدا ؟؟

    1. تعلم الأساسيات من كتاب جيد باللغة التي تريد العمل عليها ، من ثم طبق ما تعلمته في ذلك المشروع.

      بدون تطبيق فلن تستفيد من التعلم، والتطبيق بدون تعلم بشكل جيد فقد يجعلك مشتت وسوف يؤخرك كثيراً.

      بالتوفيق

    1. يوجد موضوع عن لوسين وكيف تقوم بعمل محرك بحث باستخدام هذه المكتبة

      بالنسبة لل GUI فيمكنك استخدام النت بينز وعمل الواجهه من خلال مصمم الواجهات وهي بسيطة.

      اذا كان لديك سؤال معين أو شيء نستطيع ان نفيدك فيمكنك طرحه

      بالتوفيق

  8. السلام عليكم .. مشكورين علئ المقالات الجميلة بل اعتبرها. مفاتيح وخيوط ذهبية نحو انتاج عقل مبرمج ناجح …

    الحمدلله المدة 45 يوم
    عرفت اساسيات التالي بالترتيب
    الاسمبيلي
    السي
    السي بلس بلس
    وعملت معادلات والة حاسبه وعرفت اولويات المعادلات .. والاوفر لود والفنكشن والكلاسس

    ولكن … وصلت نقطه احباط .. حيث اني اعمل على الشاشه السوداء .. وعندما قرات هنا الواجهات الرسومية وكثرتة احترت لا اعرف ماهو الافضل . اخترت في مخيتلي qt ولكن لا اعلم هل هو هذا الافضل ام .. اريد نصيحتكم من وين ابدى بعد ما عرفت الاساسيات

  9. اقصد الرابط الي حاطيه اسفل كل مشروع لما افتحه يطلع لي موقع اسمه فري دام كما اعتقد وما بتطلع المشاريع بليس بدي مساعده

  10. بش مهندس مشكوووور جدا ..
    انا سنة ثانية علوم حاسوب ..ومهتم بهذا المجال واريد ان اتوسع فيه بشكل كبير
    متمكن في console c++ ولم ادخل للواجهات واريد نصيحتك من اين ابدأ ..
    وايضا نريد الاكواد التي تم بها انشاء هذه البرامج

    1. يمكنك ان تستخدم Qt لتطوير الواجهات باستخدام سي++ اذا أردت، ويتوفر كود البرنامج الثاني (تعديل الصور المقلوبة) في الرابط المرفق مع الصورة في الموضوع. وهو ايضاً سي++ مع كيوتي.

      ايضاً يمكنك القرائة في الخوارزميات وهياكل البيانات وتطبيقها باستخدام سي++. فالتوسع يمكن ان يكون في عدة جوانب وليس فقط مقتصر على الواجهات الرسومية. لأنه مع الوقت سوف تتغير اللغة التي تستخدمها مثلاً من سي++ الى سي# أو جافا أو حتى تنتقل الى تطوير الويب فالخوارزميات وهياكل البيانات ستفيدك كثيراً في حياتك كمطور.

      وشكراً.

  11. السلام عليكم
    انا مازلت مبتدئة في البرمجة واحابه اطور من نفسي فقررت ابدأ بفكرة مشروع لاصقل معلوماتي وحبيت مشروع password manager and generator بس ياريت لو تنزل الاكواد حتى نبدا..
    وجزاك الله خير على ماقدمت وشاكرين اثراءك المحتوى العربي بهذه الافكار..

    1. اهلاً، لا يتوفر لدى كود، ولكن لو بحثت في git-hub ستجدي الكثير من الأمثلة، على كل طالما اتني مبتدئة فأنصحك ان تقومي ببرمجته بنفسك ويمكنك التواصل مع اي مبرمج عنده خبرة يكون معك ويرشدك ويساعدك في بنائه حتى النهاية. بهذا الشكل تكوني استفدتي بافضل طريقة ممكنة.

      بالنسبة للكورسات فلو بحثتم في اليوتويب سوف تجدي الكثير من القنوات العربية والانجليزية لسي++ وسي# الكثير الكثير.

      واذا كان لديكم اي سؤال او تريدوا المساعدة في نقطة ما فتفضلوا بوضعها.

      بالتوفيق.

LEAVE YOUR COMMENT

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

مشاركة