This Django-based application automates the onboarding process for MagicBus foundation's skilling and job placement programs. It targets candidates aged 18-25 who have passed 12th grade, have a family income less than 3 lakh per annum, and are not currently working.
- Candidate registration and eligibility validation
- Document upload (Aadhaar, 12th Marksheet, Income Certificate) - individual or bulk
- OCR extraction using Azure Cognitive Services
- Fraud detection for duplicate/fake documents
- Interactive React dashboard with metrics and management
- REST API for integration
-
Install dependencies:
pip install -r requirements.txt -
Configure Azure services:
- Set up Azure Computer Vision for OCR
- Update settings with Azure credentials
-
Run migrations:
python manage.py migrate -
Start the server:
python manage.py runserver -
Run the React dashboard:
cd frontend npm install npm run dev
GET /api/candidates/- List all candidatesPOST /api/candidates/- Create a new candidateGET /api/candidates/{id}/- Retrieve a candidatePUT /api/candidates/{id}/- Update a candidateDELETE /api/candidates/{id}/- Delete a candidatePOST /api/candidates/{id}/validate_eligibility/- Validate eligibilityPOST /api/candidates/{id}/upload_documents/- Upload multiple documents (Aadhaar, 12th Marksheet, Income Certificate)
GET /api/documents/- List all documentsPOST /api/documents/- Upload a new documentGET /api/documents/{id}/- Retrieve a documentPUT /api/documents/{id}/- Update a documentDELETE /api/documents/{id}/- Delete a document
- id: Primary Key
- name: CharField
- age: IntegerField (18-25)
- email: EmailField (unique)
- phone: CharField
- address: TextField
- twelfth_pass: BooleanField
- family_income: DecimalField (max 300000)
- not_working: BooleanField
- created_at: DateTimeField
- eligible: BooleanField
- id: Primary Key
- candidate: ForeignKey to Candidate
- document_type: CharField (aadhar, Twelfth, income)
- file: FileField
- ocr_text: TextField
- verified: BooleanField
- hash_value: CharField (for fraud detection)
- uploaded_at: DateTimeField
- Age: 18-25
- 12th Pass: Yes
- Family Income: <= 3,00,000 INR
- Employment Status: Not working
- OCR: Azure Computer Vision API
- Authentication: Azure Identity
The project includes an interactive dashboard built with React and Vite for easy management:
- Dashboard: View key metrics, charts, and recent candidates
- Candidates: List, view details, and validate eligibility
- Add Candidate: Form to create candidates with document uploads
- Documents: View and filter documents by candidate
Run the dashboard with: cd frontend && npm run dev
The dashboard connects to the Django API at http://localhost:8000/api.
Import the onboarding_api_insomnia.json file into Insomnia to test the API endpoints. Set the environment variable base_url to http://localhost:8000/api and candidate_id/document_id as needed for specific requests.
- Frontend portal using Streamlit
- AI-powered recommendations using LangChain
- Data processing with Databricks