چه طور انتخاب واحد دانشگاه اصفهان رو آسونتر کردم
اگه دانشگاهی باشین احتمالا استرس انتخاب واحد رو چشیدین. خیلی از دانشگاههای ایران از سامانهای استفاده میکنن به اسم گلستان. قبل از اینکه انتخاب واحد شروع بشه درسهایی که برای هر شخص ارائه شده توی این سامانه در دسترس هست. دانشجو میتونه بررسی کنه چه درسهایی رو میخواد برداره و قبل از انتخاب واحد برنامهشو بچینه و آماده کنه.
اما مشکلی که هست بعضی از درسها با هم دیگه تداخل زمانی دارن و نمیشه با هم دیگه برشون داشت. بررسی تداخل درسها کار سخت و آزار دهندیه.
من پروژهای رو استارت زدم به اسم واحدهاب تا بتونم بر سختی این کار غلبه کنم. ۵۰۰ دانشجو ترم پیش از این پروژه استفاده کردن و فکر میکنم این آمار قراره بیشتر هم بشه!
اما واحدهاب چیه و چی کار میکنه؟
واحدهاب یک سامانه تحت وب هست که به دانشجوها کمک میکنه تداخل زمانی درسها رو بررسی کنن. من برای ساخت این سامانه شروع به یادگیری HTML, CSS, و JS کردم. ایدهی اولیه خیلی سادهاست. کافیه یه جدول زمانی داشته باشیم و یک لیستی از درسها که دانشجو بتونه درسها رو انتخاب کنه. طبیعتا درسهایی که در یک ستون زمانی قرار بگیرن با هم دیگه تداخل دارن.
اما چالشی که برای من وجود داشت این بود که لیست درسها رو از کجا گیر بیارم؟ توی نسخهی اولیه لیست درسها رو از نمایندهی هر ورودی دانشکدهی خودمون میگرفتم و وارد دیتابیس سامانه میکردم. اما مشکلی که وجود داشت زمان درسها توی سامانهی گلستان تغییر میکرد و من از تغییرات با خبر نبودم. برای همین سامانه آپدیت نبود و بچهها نمیتونستن روش حساب باز کنن.
پس به سراغ رییس مرکز فناوری اطلاعات دانشگاه رفتم تا ببینم آیا میتونم یک API از سامانهی گلستان بگیرم یا نه؟ که با جواب نه مواجه شدم. در واقع سامانهی گلستان این قدر قدیمی و داغون بود که API نداشت و تازه جدا از اون به من گفتن که گرفتن API نیازمند مجوز از ادارهی آموزش هست و کلی دردسر داره و بهتره که بیخیالش بشی!
خوب من اولش خیلی سرخورده شدم ولی ناامید نبودم! با خودم گفتم باید حتما یه راهی باشه. زمان گذشت تا اینکه نسخهی جدید واحدهاب رو با یک قابلیت فوقالعاده منتشر کردم!
توی نسخه دوم واحدهاب دانشجوها میتونستن با همون یوزرنیم و پسورد گلستان وارد سامانه بشن و لیست درسهاشون رو ببینن. و خوب بچهها مدام از من میپرسیدن که چه طور با گلستان ارتباط برقرار کردم و آیا دانشگاه به من API داده یا نه؟
جواب اینه اساسا هر کاری که مرورگر میکنه رو ما هم میتونیم انجام بدیم! من رکوئستهایی که به سمت گلستان میرفت رو اسنیف کردم، ساختار توابع گلستان رو بررسی کردم و در نهایت عملیاتها رو مهندسی معکوس کردم. خیلی جاها هم ترفندهای جالبی زدم و چیزهای جالبی کشف کردم.
به عنوان مثال همونطور که در تصویر میبینید برای ورود به گلستان باید کپچا پر کنیم. اما برای ورود به واحدهاب هیچ کپچایی لازم نیست! من با بررسی که کردم متوجه شدم کپچا کاملا سمت فرانت هندل میشه و اصلا چیزی به سرور ارسال نمیشه برای همین به راحتی میشه حذفش کرد!
واحدهاب الان میتونه به هر دانشگاهی که از سامانه گلستان استفاده میکنه متصل بشه.
این تصویر نسخهی سوم واحدهاب هست که طراحی مینیمال و سادهای رو براش پیش گرفتم. اما از اونجایی که از تم سنتی و رنگهای گرم هم خیلی خوشم میاد یک نسخه هم به اسم واحدکده طراحی کردم که عکسش رو اول متن گذاشتم.
این پروژه لذت واقعی برنامهنویسی رو به من چشوند. چون چیزی ساختم که تعداد زیادی دانشجو ازش استفاده بردن :)
ببخشید بابت تأخیر
والا ۲۱۲ رو زدم، تعدادی درس آورد که اصلاً من برنداشتم و مال ترمهای آینده است!
بیزحمت این لینکو ببین:
https://www.heyvagroup.com/shownews/10905/%DA%A9%D8%AF%D9%87%D8%A7%DB%8C-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%D8%B3%D8%A7%D9%85%D8%A7%D9%86%D9%87-%DA%AF%D9%84%D8%B3%D8%AA%D8%A7%D9%86.html