UNPKG

@dinush/srilankan-universities-faculties-degrees

Version:
216 lines (167 loc) 8.18 kB
<p align="center"> <img src="https://img.shields.io/badge/typescript-supported-blue" alt="TypeScript Support" /> <img src="https://img.shields.io/badge/tests-passing-brightgreen" alt="Tests"> <img src="https://img.shields.io/badge/downloads-1k%2Fmonth-brightgreen"> <img src="https://img.shields.io/badge/rating-★★★★☆-brightgreen"> <img src="https://img.shields.io/badge/uptime-100%25-brightgreen"> <a href="https://dinushchathurya.github.io/"> <img alt="Website" src="https://img.shields.io/website?down_message=red&style=plastic&up_message=online&url=https%3A%2F%2Fdinushchathurya.github.io%2F"> </a> <img alt="Twitter URL" src="https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2FDinushChathurya"> <img src="https://img.shields.io/badge/made%20with%20love-by%20srilanka-orange"> </p> <h1 align="center">All Sri Lankan Universities, Faculties and Undergraduate Degree Programs</h1> <p align="center"> This package contains all Sri Lankan Universities, Faculties and Undergraduate Degree Programs. </p> ## Table of Contents <ol> <li><a href="#installation">Installation</a></li> <li><a href="#usage">Usage</a></li> <li><a href="#api-reference">API Reference</a></li> <li><a href="#contributing">Contributing</a></li> <li><a href="#license">License</a></li> <li><a href="#support">Support</a></li> <li><a href="#author">Author</a></li> </ol> ## Installation via npm ```bash npm i @dinush/srilankan-universities-faculties-degrees@2.0.0 ``` ## Usage ### JavaScript (CommonJS) ```javascript // Import everything from the package const { getUniversities, getFaculties, getDegrees } = require("@dinush/srilankan-universities-faculties-degrees"); // Get all universities const allUniversities = getUniversities(); // ["University of Colombo", "University of Peradeniya", ...] // Get faculties of a selected university const colomboFaculties = getFaculties("University of Colombo"); // ["Faculty of Arts", "Faculty of Education", "Faculty of Law", ...] // Get degrees of a selected faculty at a university const lawDegrees = getDegrees("University of Colombo", "Faculty of Law"); // ["Bachelor of Laws"] // Access legacy data structure const { universities_data } = require("@dinush/srilankan-universities-faculties-degrees"); const rawData = universities_data["University of Colombo"]["Faculty of Law"]; // ["Bachelor of Laws"] ``` ### TypeScript / ES Modules ```typescript // Import the modern API import { getAllUniversities, getFacultiesByUniversity, getDegreesByFaculty, getUniversity, getFaculty, validateUniversity, validateFaculty, University, Faculty, Degree } from "@dinush/srilankan-universities-faculties-degrees"; // Get all universities with detailed data const universities: University[] = getAllUniversities(); /* [ { id: "university-of-colombo", name: "University of Colombo", code: "UOC" }, { id: "university-of-peradeniya", name: "University of Peradeniya", code: "UOP" }, ... ] */ // Get specific university by name or ID (case-insensitive) const colombo: University | undefined = getUniversity("University of Colombo"); const colomboById: University | undefined = getUniversity("university-of-colombo"); // Validate university existence const isValid: boolean = validateUniversity("University of Colombo"); // true // Get faculties of a university with detailed data const faculties: Faculty[] = getFacultiesByUniversity("University of Colombo"); /* [ { id: "faculty-of-law-colombo", universityId: "university-of-colombo", name: "Faculty of Law" }, { id: "faculty-of-science-colombo", universityId: "university-of-colombo", name: "Faculty of Science" }, ... ] */ // Get specific faculty const lawFaculty: Faculty | undefined = getFaculty("University of Colombo", "Faculty of Law"); // Validate faculty in university const facultyExists: boolean = validateFaculty("University of Colombo", "Faculty of Law"); // true // Get degrees offered by a faculty const degrees: Degree[] = getDegreesByFaculty("University of Colombo", "Faculty of Law"); /* [ { id: "bachelor-of-laws-colombo", universityId: "university-of-colombo", facultyId: "faculty-of-law-colombo", name: "Bachelor of Laws" } ] */ // Get all data const allUniversities: University[] = getAllUniversities(); const allFaculties: Faculty[] = getAllFaculties(); const allDegrees: Degree[] = getAllDegrees(); ``` ### Individual Module Imports (TypeScript / ES Modules) ```typescript // Import only the universities module import { getAllUniversities, getUniversity, validateUniversity } from "@dinush/srilankan-universities-faculties-degrees/universities"; // Import only the faculties module import { getAllFaculties, getFacultiesByUniversity, getFaculty, validateFaculty } from "@dinush/srilankan-universities-faculties-degrees/faculties"; // Import only the degrees module import { getAllDegrees, getDegreesByFaculty } from "@dinush/srilankan-universities-faculties-degrees/degrees"; // Import legacy compatibility import { getUniversities, getFaculties, getDegrees } from "@dinush/srilankan-universities-faculties-degrees/compatibility"; ``` ## API Reference ### Modern API (New in v2.0) #### Universities - `getAllUniversities()`: Returns all universities with detailed data - `getUniversity(nameOrId)`: Returns a specific university by name or ID (case-insensitive) - `validateUniversity(nameOrId)`: Validates if a university exists #### Faculties - `getAllFaculties()`: Returns all faculties with detailed data - `getFacultiesByUniversity(universityNameOrId)`: Returns faculties for a specific university - `getFaculty(universityNameOrId, facultyNameOrId)`: Returns a specific faculty - `validateFaculty(universityNameOrId, facultyNameOrId)`: Validates if a faculty exists in a university #### Degrees - `getAllDegrees()`: Returns all degree programs with detailed data - `getDegreesByFaculty(universityNameOrId, facultyNameOrId)`: Returns degrees offered by a specific faculty ### Legacy API (v1.x Compatibility) These functions are maintained for backward compatibility: - `getUniversities()`: Returns array of university names - `getFaculties(university)`: Returns array of faculty names - `getDegrees(university, faculty)`: Returns array of degree names - `universities_data`: Legacy data structure for direct access ## Framework Examples - [NodeJS Example](https://github.com/dinushchathurya/srilankan-provinces-districts-npm-package-demo/tree/main/node-demo) - [ReactJS Example](https://github.com/dinushchathurya/srilankan-provinces-districts-npm-package-demo/tree/main/react-demo) - [NextJS Example](https://github.com/dinushchathurya/srilankan-provinces-districts-npm-package-demo/tree/main/next-demo) - [NestJS Example](https://github.com/dinushchathurya/srilankan-provinces-districts-npm-package-demo/tree/main/nest-demo) - [Other Examples](https://github.com/dinushchathurya/cuddly-couscous) ## Contributing Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again! 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## License This project is licensed under the MIT License - see the LICENSE file for details. ## Support <p align="center"> <a href="https://www.patreon.com/bePatron?u=35199964" target="_blank"> <img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Become a Patreon"> </a> </p> ## Author <p align="center"> Made with ❤️ & ☕ by <a href="https://dinushchathurya.me/"><u style="color:#0193f0;">Dinush Chathurya</u></a> as a part of <a href="https://github.com/open-source-srilanka"><u style="color:#0193f0;">ProjectOSS</u></a> </p>