నేను ఒక ఫుల్ స్టాక్ అకడమిక్ మేనేజ్మెంట్ సిస్టమ్ను రూపొందించాను
మా కళాశాలలో హాజరు కోసం పేపర్ రిజిస్టర్లు మరియు మార్కుల కోసం ఎక్సెల్ షీట్లను ఉపయోగించేవారు. నోటీసులు భౌతిక బోర్డులపై ఉండేవి. ఈ మొత్తం ప్రక్రియను డిజిటలైజ్ చేయాలని మా బృందం నిర్ణయించుకుంది.
మేము Student Sphereను రూపొందించాము.
ఈ సిస్టమ్ మూడు విభిన్న డ్యాష్బోర్డ్లను ఉపయోగిస్తుంది:
విద్యార్థి డ్యాష్బోర్డ్ (Student Dashboard):
- హాజరు మరియు అర్హతను చూడటం
- గ్రేడ్లను తనిఖీ చేయడం
- స్టడీ నోట్స్ను డౌన్లోడ్ చేయడం
- అసైన్మెంట్లను డిజిటల్గా సమర్పించడం
- సెమిస్టర్ నోటీసులను చూడటం
ఫ్యాకల్టీ డ్యాష్బోర్డ్ (Faculty Dashboard):
- హాజరు మరియు మార్కులను అప్డేట్ చేయడం
- నోట్స్ మరియు ల్యాబ్ రిపోర్టులను అప్లోడ్ చేయడం
- అసైన్మెంట్ గడువులను నిర్ణయించడం
- నిర్దిష్ట సెమిస్టర్లకు నోటీసులను పోస్ట్ చేయడం
- విద్యార్థుల సబ్మిషన్లను సమీక్షించడం
అడ్మిన్ డ్యాష్బోర్డ్ (Admin Dashboard):
- కొత్త రిజిస్ట్రేషన్లను ఆమోదించడం
- యూజర్ అకౌంట్లను నిర్వహించడం
- మొత్తం సెమిస్టర్లను ప్రమోట్ చేయడం
- సిస్టమ్ గణాంకాలను చూడటం
- అన్ని నోటీసులను నిర్వహించడం
టెక్నికల్ స్టాక్ (Technical Stack):
ఫ్రంటెండ్ (Frontend):
- HTML5, CSS3, మరియు Vanilla JavaScript
- React లేదా Vue వంటి ఫ్రేమ్వర్క్లు లేవు
- అన్ని పేజీల కోసం ఒకే CSS ఫైల్
- మొబైల్ నుండి 4K స్క్రీన్ల వరకు రెస్పాన్సివ్ డిజైన్
బ్యాకెండ్ (Backend):
- Node.js మరియు Express.js v5
- JWT అథెంటికేషన్
- Bcrypt పాస్వర్డ్ హ్యాషింగ్
- 30+ ఎండ్పాయింట్లతో కూడిన REST API
డేటాబేస్ మరియు డిప్లాయ్మెంట్ (Database and Deployment):
- MongoDB Atlas
- ఫ్రంటెండ్ Netlifyలో హోస్ట్ చేయబడింది
- బ్యాకెండ్ Renderలో హోస్ట్ చేయబడింది
- WebView ద్వారా Javaతో రూపొందించబడిన Android యాప్
మేము రెండు ప్రధాన సాంకేతిక సవాళ్లను ఎదుర్కొన్నాము.
సవాలు 1: API పనితీరు (Performance)
ఫ్యాకల్టీ డ్యాష్బోర్డ్ ప్రారంభంలో విద్యార్థుల డేటాను లోడ్ చేయడానికి 46 విడివిడి API కాల్స్ను చేసేది. దీనివల్ల 14 సెకన్ల ఆలస్యం జరిగేది. నేను విడివిడి కాల్స్కు బదులుగా ఒకే MongoDB $in క్వెరీని ఉపయోగించాను. ఇది లోడ్ సమయాన్ని గణనీయంగా తగ్గించింది.
సవాలు 2: React లేకుండా సింగిల్ పేజీ అప్లికేషన్ (SPA) మేము కేవలం Vanilla JavaScript ఉపయోగించి రోల్-బేస్డ్ SPAను రూపొందించాము. మేము రూటింగ్ మరియు స్టేట్ను మాన్యువల్గా నిర్వహించాము. మొబైల్ పరికరాలపై హారిజాంటల్ స్క్రోలింగ్ లేకుండా ఉండటానికి మేము CSS మీడియా క్వెరీలను ఉపయోగించాము.
ముఖ్యమైన పాఠాలు:
- ఫ్రేమ్వర్క్లు లేకుండా నిర్మించడం వల్ల వెబ్ టెక్నాలజీ లోపల అసలు ఎలా పనిచేస్తుందో మీకు తెలుస్తుంది.
- కొత్త ఫీచర్లను జోడించడం కంటే పనితీరును (Performance) ఆప్టిమైజ్ చేయడం చాలా ముఖ్యం.
- ప్రారంభంలో తీసుకునే డేటాబేస్ స్కీమా నిర్ణయాలు మొత్తం ప్రాజెక్ట్పై ప్రభావం చూపుతాయి.
- డిప్లాయ్మెంట్ సమయంలో CORS మరియు ఎన్విరాన్మెంట్ వేరియబుల్స్ను జాగ్రత్తగా నిర్వహించాల్సి ఉంటుంది.
ఈ ప్రాజెక్ట్ను కోడర్మాలోని రామ్గోవింద్ ఇన్స్టిట్యూట్ ఆఫ్ టెక్నాలజీకి చెందిన ఐదుగురు విద్యార్థులు, మిస్టర్ అజయ్ కుమార్ డాంగి గారి మార్గదర్శకత్వంలో రూపొందించారు.
Live Website: https://studentsphere0.netlify.app
Frontend GitHub: https://github.com/sumankumarsinghrajput/studentsphere-frontend
Backend GitHub: https://github.com/sumankumarsinghrajput/studentsphere-backend
నేను నా కళాశాల కోసం ఒక ఫుల్-స్టాక్ అకడమిక్ మేనేజ్మెంట్ సిస్టమ్ను రూపొందించాను - అది ఎలాగో ఇక్కడ ఉంది
నేను నా కళాశాల కోసం ఒక ఫుల్-స్టాక్ అకడమిక్ మేనేజ్మెంట్ సిస్టమ్ను రూపొందించాను. ఈ ప్రాజెక్ట్ ద్వారా కళాశాల నిర్వహణను మరింత సులభతరం చేయడం నా లక్ష్యం.
సమస్య (The Problem)
మా కళాశాలలో, విద్యార్థుల వివరాలు, హాజరు మరియు మార్కులను నిర్వహించడానికి మేము ఇప్పటికీ మాన్యువల్ పద్ధతులను లేదా పాత పద్ధతులను ఉపయోగిస్తున్నాము. దీనివల్ల సమయం వృథా అవ్వడమే కాకుండా, డేటాలో తప్పులు జరిగే అవకాశం కూడా ఉంది.
పరిష్కారం (The Solution)
ఈ సమస్యను పరిష్కరించడానికి, నేను ఒక సమగ్రమైన వెబ్ అప్లికేషన్ను రూపొందించాలని నిర్ణయించుకున్నాను. ఇది అడ్మిన్, అధ్యాపకులు మరియు విద్యార్థుల కోసం ప్రత్యేకమైన డాష్బోర్డ్లను కలిగి ఉంటుంది.
టెక్ స్టాక్ (Tech Stack)
ఈ ప్రాజెక్ట్ కోసం నేను MERN Stack ఉపయోగించాను:
- MongoDB: డేటాబేస్ కోసం.
- Express.js: బ్యాకెండ్ ఫ్రేమ్వర్క్ కోసం.
- React.js: యూజర్ ఇంటర్ఫేస్ (Frontend) కోసం.
- Node.js: రన్టైమ్ ఎన్విరాన్మెంట్ కోసం.
ఫీచర్లు (Features)
అడ్మిన్ (Admin)
- వినియోగదారులను (విద్యార్థులు మరియు అధ్యాపకులు) నిర్వహించడం.
- కోర్సులను మరియు విభాగాలను సృష్టించడం.
- మొత్తం సిస్టమ్పై నియంత్రణ కలిగి ఉండటం.
అధ్యాపకులు (Teacher)
- విద్యార్థుల హాజరును నమోదు చేయడం.
- పరీక్షల మార్కులను అప్లోడ్ చేయడం.
- కోర్సు సంబంధిత సమాచారాన్ని నిర్వహించడం.
విద్యార్థి (Student)
- తమ హాజరు మరియు మార్కులను చూడటం.
- కోర్సు వివరాలను తెలుసుకోవడం.
- నోటీసులను చూడటం.