Skip to content

Repository files navigation

Music Student Portal 🎵

An application for music teachers to create and share lesson plans with their students digitally.

Overview of features

  • Role-based authentication: Two types of accounts exist: teacher and student. A teacher can create and view students and their lesson plans, as well as create new lessons for any of their students. A student can create an account tied to their teacher, and only see their own lesson plans.
  • Teacher Dashboard: A teacher can see all students in their roster, clicking through to see that student's lessons.
  • Student Management: A teacher can add and remove students from their roster.
  • Lesson Planning: A teacher can create lesson plans with the date, content, and learning objectives.
  • Student view: A student can log in and view all of their lessons from their teacher.

🛠️ Tech Stack

Frontend

  • EJS: Templating engine for dynamic rendering of HTML server-side, based on backend data.

Backend

  • Node.js & Express: Server and API routes.
  • MongoDB & Mongoose: NoSQL database
  • Passport.js: Authentication middleware.

Getting Started

Prerequisites

  • Node.js installed
  • MongoDB installed locally or a MongoDB Atlas URI

Installation

  1. Clone the repository

    git clone https://github.com/DevinCLane/music-student-portal.git
    cd music-student-portal
  2. Install dependencies

    npm install
  3. Configuration Create a .env file in the config folder and add the following variables:

    PORT=2121
    DB_STRING=your_mongodb_connection_string
    CLOUD_NAME=your_cloudinary_cloud_name
    API_KEY=your_cloudinary_api_key
    API_SECRET=your_cloudinary_api_secret
  4. Run the application

    npm start

    Open your browser and navigate to http://localhost:2121.

Select API Routes

Teacher Dashboard

Method Path Description
GET /teachers/dashboard View teacher's dashboard with list of students

Student Management

Method Path Description
GET /teachers/students/new Form to add a new student
POST /teachers/students Create a new student
GET /teachers/students/:studentId View individual student profile
DELETE /teachers/students/:studentId Delete a student

Lesson Management

Method Path Description
GET /teachers/student/:studentId/lesson/new Form to create a new lesson
POST /teachers/student/:studentId/lesson Save a new lesson
GET /teachers/student/:studentId/lesson/:lessonId View individual lesson

🌟 Future Improvements

  • Multimedia uploads: Upload and attach images (sheet music, diagrams, handwritten notes) to lessons using Cloudinary integration.
  • Markdown editor: Compose and edit lessons in markdown to easily add line breaks, formatting, bold/italics, bullets/numbered lists, and links
  • Scheduling: Integrated calendar for booking lessons.
  • Practice Logs: Feature for students to record their practice time.
  • Billing: Automated billing for teachers to bill students and their parents.

About

Full stack web app for music teachers to manage their student's lesson plans

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages