Nimejenga Mfumo Kamili wa Usimamizi wa Taaluma (Full Stack Academic Management System)
Chuo changu kilikuwa kindatumia rejista za karatasi kwa mahudhurio na karatasi za Excel kwa alama. Matangazo yalibaki kwenye mbao za karatasi. Timu yangu iliamua kuugeuza mchakato huu wote kuwa wa kidijitali.
Tulijenga Student Sphere.
Mfumo unatumia dashibodi tatu tofauti:
Dashibodi ya Mwanafunzi:
- Angalia mahudhurio na sifa za kujiunga
- Angalia alama
- Pakua maelezo ya masomo
- Wasilisha kazi za darasani kidijitali
- Angalia matangazo ya muhula
Dashibodi ya Mwalimu:
- Sasisha mahudhurio na alama
- Pakia maelezo na ripoti za maabara
- Weka muda wa mwisho wa kazi za darasani
- Weka matangazo kwa muhula maalum
- Pitia kazi zilizowasilishwa na wanafunzi
Dashibodi ya Msimamizi:
- Idhinisha usajili mpya
- Simamia akaunti za watumiaji
- Kusogeza muhula mzima mbele
- Angalia takwimu za mfumo
- Simamia matangazo yote
Teknolojia Iliyotumika (Technical Stack):
Frontend:
- HTML5, CSS3, na Vanilla JavaScript
- Hakuna mifumo (frameworks) kama React au Vue
- Faili moja la CSS kwa kurasa zote
- Muundo unaobadilika (Responsive design) kuanzia simu hadi skrini za 4K
Backend:
- Node.js na Express.js v5
- Uthibitishaji wa JWT
- Hashing ya nywila kwa Bcrypt
- REST API yenye zaidi ya njia (endpoints) 30+
Kanzi data (Database) na Usambazaji (Deployment):
- MongoDB Atlas
- Frontend imewekwa kwenye Netlify
- Backend imewekwa kwenye Render
- Programu ya Android iliyojengwa kwa Java kupitia WebView
Tulikumbana na vikwazo viwili vikubwa vya kiufundi.
Changamoto ya 1: Utendaji wa API
Dashibodi ya mwalimu mwanzoni ilifanya miito 46 tofauti ya API ili kupakia data ya mwanafunzi. Hii ilisababisha ucheleweshaji wa sekunde 14. Nilibadilisha miito hiyo ya mmoja mmoja kwa kutumia dodoso moja la MongoDB $in. Hii ilipunguza muda wa kupakia kwa kiasi kikubwa.
Changamoto ya 2: Programu ya Ukurasa Mmoja (SPA) bila React Tulijenga SPA inayozingatia majukumu kwa kutumia vanilla JavaScript pekee. Tulisimamia njia (routing) na hali (state) kwa mkono. Tulitumia CSS media queries kuhakikisha hakuna kuteleza kwa pembeni (horizontal scrolling) kwenye vifaa vya simu.
Mafunzo Muhimu:
- Kujenga bila mifumo (frameworks) hukufundisha jinsi teknolojia ya wavuti inavyofanya kazi ndani kabisa.
- Kuboresha utendaji (performance optimization) ni muhimu zaidi kuliko kuongeza vipengele vipya.
- Maamuzi ya mapema ya muundo wa kanzi data (database schema) huathiri mradi mzima.
- Usambazaji (Deployment) unahitaji usimamizi makini wa CORS na vigezo vya mazingira (environment variables).
Mradi huu ulijengwa na wanafunzi watano kutoka Ramgovind Institute of Technology, Koderma, chini ya mwongozo wa Bw. Ajay Kumar Dangi.
Tovuti Hai: https://studentsphere0.netlify.app
GitHub ya Frontend: https://github.com/sumankumarsinghrajput/studentsphere-frontend
GitHub ya Backend: https://github.com/sumankumarsinghrajput/studentsphere-backend
Nimejenga mfumo kamili wa usimamizi wa kitaaluma kwa ajili ya chuo changu - hivi ndivyo nilivyofanya
Katika chuo changu, tulikuwa tukitegemea mifumo ya kizamani ya karatasi na Excel kwa ajili ya kusimamia mambo mengi kama vile mahudhurio, alama, na usajili wa wanafunzi. Hii ilisababisha mambo mengi ya kuchanganyikiwa, kupoteza data, na ucheleweshaji wa kazi.
Niliamua kutatua tatizo hili kwa kujenga Mfumo wa Usimamizi wa Kitaaluma (Academic Management System) uliokuwa wa kisasa na wa kidijitali.
Teknolojia Nilizotumia (Tech Stack)
Ili kuhakikisha mfumo huu ni wa haraka, unaweza kuongezeka (scalable), na rahisi kutumia, nilitumia teknolojia za MERN stack:
- MongoDB: Kanzi data ya nyaraka (document-based database) inayotoa unyumbufu mkubwa.
- Express.js: Framework ya Node.js kwa ajili ya kutengeneza API za backend.
- React.js: Maktaba ya JavaScript kwa ajili ya kutengeneza interface ya mtumiaji (frontend) inayovutia na yenye kasi.
- Node.js: Mazingira ya kuendeshea (runtime environment) inayowezesha kutumia JavaScript upande wa seva.
Vipengele Muhimu (Key Features)
Mfumo huu umeundwa kwa kuzingatia mahitaji ya pande tatu kuu:
1. Admin (Msimamizi)
Admin ndiye mwenye mamlaka ya juu zaidi katika mfumo. Anaweza:
- Kuunda na kusimamia akaunti za walimu na wanafunzi.
- Kusimamia kozi, masomo, na madarasa.
- Kuangalia ripoti za jumla za chuo.
- Kusimamia mipangilio ya mfumo.
2. Faculty (Walimu)
Walimu wana uwezo wa kusimamia shughuli zao za kila siku:
- Kuweka na kusasisha alama za wanafunzi.
- Kusimamia mahudhurio ya wanafunzi.
- Kupakia nyenzo za masomo (notes, assignments).
- Kuona ratiba zao za masomo.
3. Student (Mwanafunzi)
Wanafunzi wanaweza kufanya yafuatayo:
- Kuona ratiba zao za masomo.
- Kuangalia alama zao na maendeleo ya kitaaluma.
- Kupata nyenzo za masomo zilizowekwa na walimu.
- Kuwasiliana na walimu wao.
Muundo wa Database (Database Schema)
Nilitumia MongoDB kwa sababu ya uwezo wake wa kuhifadhi data zenye muundo tofauti. Schema kuu ni pamoja na:
- Users: Inahifadhi taarifa za msingi kama jina, barua pepe, neno la siri, na jukumu (role).
- Courses: Inahifadhi maelezo ya kozi na walimu wanaohusika.
- **Students