@rehan-warsi/sms
Version:
This project is a simple console based Student Management System. In this project you will be learning how to add new students, how to generate a 5 digit unique studentID for each student, how to enroll students in the given courses. Also, you will be imp
84 lines (72 loc) • 2.39 kB
text/typescript
import inquirer from "inquirer";
import chalk from 'chalk';
import { createSpinner } from 'nanospinner';
import { Course } from "./classes.js";
import { Student } from "./classes.js";
import { Teacher } from "./classes.js";
let course = Course.course
let student = Student.student
let teacher = Teacher.teacher
let sleep = () => new Promise((r) => setTimeout(r, 1000))
export async function courseOptions() {
const result: any = await inquirer.prompt([
{
type: 'rawlist',
name: 'courseMenu',
message: 'Course Menu : ',
choices: [
'Add New Course',
'View Course',
'Back'
],
}
]);
if (result.courseMenu == "Add New Course") {
await courseAdd()
}
if (result.courseMenu == "View Course") {
await ViewCourse(course)
}
}
async function courseAdd() {
const result = await inquirer.prompt([
{
type: "input",
name: "courseName",
message: "Enter Course Name : "
},
{
type: "input",
name: "courseTiming",
message: "Enter Course Timing: "
},
{
type: "number",
name: "courseFees",
message: "Enter Course Fees: "
}
]);
let studentName: string[] = []
let teacherName: string[]= []
let newCourse = new Course(result.courseName, result.courseTiming,result.courseFees,studentName,teacherName)
const spinner = createSpinner('Adding Course').start()
await sleep()
Course.addCourse(newCourse)
spinner.success({ text: chalk.greenBright("Course Added Successfully") })
}
// View Course Function
async function ViewCourse(course:Course[]) {
if (!course.length) {
console.log(chalk.redBright('############ No Course Available ############'))
return
}
console.table(course.map((val) => {
return {
Name: val.courseName,
Timing: val.courseTiming,
Fees: val.courseFees,
Students_Name: val.studentName.length ? val.studentName : "No Student Enrolled",
Teachers_Name: val.teacherName.length ? val.teacherName : "No Teacher Assigned",
}
}))
}