The Sports Scholarship App is a web-based platform built with Vite, React, and TypeScript to manage and distribute scholarships to students with exceptional talent in sports — especially those who have played at national or state levels.
- 🎯 Student registration and login
- 📝 Scholarship application form
- 🏅 Admin dashboard to verify applicants
- 📄 Upload and review sports achievement documents
- 🔒 Secure and user-friendly UI built with modern React stack
- 📎 Document upload for supporting achievements and credentials
- Language Used: TypeScript
- Frontend: React + TypeScript
- Build Tool: Vite
- State Management: React Hooks / Context API (or preferred library)
- Styling: Tailwind CSS (optional)
- Routing: React Router
- Form Handling: React Hook Form (recommended)
- File Upload: Multer (backend)
git clone https://github.com/your-username/sports-scholarship-app.git
cd sports-scholarship-app
npm install
npm run dev
src/
├── components/ # Reusable UI components
├── pages/ # Page-level components
├── services/ # API and utility functions
├── hooks/ # Custom React hooks
├── types/ # TypeScript types and interfaces
└── App.tsx # Main app component
The application supports document uploads for verifying sports achievements and academic credentials.
Endpoint | Method | Description | Parameters |
---|---|---|---|
/api/applications/:id/documents |
POST | Upload documents for an application | documents : Files (max 5), documentType : Type of document |
/api/applications/:id/documents/:docId |
GET | Retrieve a specific document | None |
/api/applications/:id/documents/:docId |
DELETE | Delete a document | None |
- PDF files (application/pdf)
- Images (image/jpeg, image/png)
- Word documents (.doc, .docx)
- Excel spreadsheets (.xls, .xlsx)
// Upload documents example
const formData = new FormData();
formData.append('documents', fileInput.files[0]);
formData.append('documentType', 'certificate');
fetch('/api/applications/:id/documents', {
method: 'POST',
body: formData,
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => console.log(data));
- Add email notification for application status
- Integration with government databases (for verification)
- Multi-role support (students, institutions, admins)
- Analytics dashboard for tracking scholarship trends
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.
This project is open-source and available for review.