Kathanika is a modern, open-source Integrated Library System (ILS) designed to help libraries of all sizes manage their collections, patrons, and operations efficiently. With a user-friendly interface and robust backend, Kathanika provides a comprehensive solution for library management needs.
- Catalog Management: Complete bibliographic management with MARC21 support
- Circulation: Efficient check-in/check-out processing, renewals, and holds management
- Patron Management: Comprehensive patron tracking and self-service capabilities
- Reporting: Advanced analytics and reporting tools
- Search & Discovery: Powerful search capabilities with faceted navigation
- Notifications: Automated alerts for due dates and available holds
- Framework: Angular 18+ with TypeScript 5.8+
- UI Design: Modern, responsive interface using Tailwind CSS
- Testing: Jest and Cypress for comprehensive test coverage
- .NET Core: Built on .NET 8.0/9.0 with C# 12.0/13.0
- Architecture: Domain-Driven Design (DDD) approach for clean, maintainable code
- API: GraphQL with HotChocolate GraphQL integration
For detailed setup instructions, see our Getting Started Guide.
# Clone the repository
git clone https://github.com/yourusername/kathanika.git
cd kathanika
# Install dependencies
npm install
# Install .NET tools
dotnet tool restore
# Start the development servers
# Terminal 1: Start the Angular frontend
ng serve
# Terminal 2: Start the .NET backend
dotnet run --project src/services/Kathanika.WebNavigate to http://localhost:4200/ to access the frontend application. The backend API will be running on https://localhost:7167.
Alternatively, you can use the provided IDE configurations for VS Code or JetBrains Rider to run both frontend and backend simultaneously.
- Architecture Overview
- API Documentation
- Project Roadmap
- Product Requirements
- Contribution Guidelines
Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.
Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.
Run ng build to build the project. The build artifacts will be stored in the dist/ directory.
- Unit Tests: Run
ng testto execute unit tests via Jest - End-to-End Tests: Run
ng e2eto execute e2e tests via Cypress
Kathanika is an open-source project, and we welcome contributions from the community. Please read our Contribution Guidelines before submitting a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- All contributors who have helped build Kathanika
- Libraries and librarians who have provided valuable feedback
- Open-source community for continuous support and inspiration
This project was generated with Angular CLI version 18.2.11.
Run ng serve for the Angular dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.
For the .NET backend, run:
dotnet run --project src/services/Kathanika.Web