A web application built for CSIRO to streamline the management of research position applications in Machine Learning and Data Science, with a focus on COVID-19 vaccination causality research in Australia.
- User registration and profile management
- Application submission for research positions
- Educational background and experience documentation
- Document upload capability (CV, cover letter)
- Real-time application status tracking
- Automated email notifications
- Comprehensive application review dashboard
- Advanced sorting and filtering capabilities
- Automated candidate shortlisting
- Interview scheduling management
- Email communication system
- Application status management
- Backend: ASP.NET Core MVC (.NET 8.0)
- Database: PostgreSQL
- Authentication: ASP.NET Core Identity
- Frontend: Bootstrap 5, jQuery
- Email: Development simulation with production SMTP support
- .NET 8.0 SDK
- PostgreSQL 15 or higher
- Visual Studio 2022 or VS Code
- Clone the repository
git clone [repository-url]
cd csiro_mvc
- Update database connection string in
appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=csiro_mvc;Username=your_username;Password=your_password"
}
}
- Apply database migrations
dotnet ef database update
- Start the application:
dotnet run --launch-profile http
- Access the application at:
During development, the application simulates email sending by saving email content as HTML files:
- All emails are saved in the
EmailSimulation
directory - Files are named with timestamps (e.g.,
email_20240101_120000.html
) - Each file contains:
- Email metadata (recipient, subject, timestamp)
- Formatted email content
- Styling for visualization
For production deployment:
- Update email configuration in
appsettings.Production.json
- Set environment variable:
ASPNETCORE_ENVIRONMENT=Production
- Configure your SMTP server details
- Role-based authorization
- Secure password hashing
- Input validation and sanitization
- CSRF protection
- XSS prevention
- SQL injection protection