The goal of icmc is to provide a comprehensive gear tracking and logbook application for the Imperial College Mountaineering Club. It provides:
- Gear Management: A centralised system to track club equipment, including its storage location, size, and category.
- Loan System: Automated reminders and tracking for gear lent to club members.
- Logbook: A digital record for club members to log their climbs and trips.
- ICU Integration: Legacy service (since I will no longer be at Imperial) to sync members and committee with Imperial Union API.
- Backend: .NET 10 Web API with Entity Framework Core.
- Frontend: React Native with Expo and TypeScript.
- Database: SQL Server.
- Integrations: ImgBB for image hosting, Gmail SMTP for notifications.
To run the backend locally:
cd backend/Api
dotnet runTo set up a local database for development:
docker run --name icmc_local -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=ANY_PASSWORD' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest
To run the frontend locally:
cd frontend
npm install
npx expo start- Automated Reminders: Sends email notifications for overdue gear using Gmail SMTP.
- Image Support: Integrated with ImgBB for gear and logbook photos.
- Role-based Access: Different permissions for club members and administrators (Member, Driver, Committe, etc.).
icmc has an MIT license.