Skip to content

CodeByAmrit/StudentTracker-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

346 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student Tracker

Student Tracker is a comprehensive Student Management System designed for schools to simplify student data management. It allows teachers to register students, store essential documents, generate reports, and more.

🚀 Features

  • Teacher Dashboard: Manage students, view statistics, and access all features from a central dashboard.
  • Student Management: Register new students, edit existing student information, and view a list of all students.
  • Document Management: Upload and manage student files such as documents, photos, and signatures.
  • Certificate Generation:
    • Generate Annual Report Cards in PDF format.
    • Create and download Achievement Certificates.
    • Issue Virtual ID Cards.
  • AI Chat: An integrated AI chat feature to assist teachers.
  • Secure Authentication: Secure login for teachers with password hashing.

🛠️ Tech Stack

  • Backend: Node.js, Express.js
  • Frontend: EJS (Embedded JavaScript templates), Tailwind CSS, Flowbite
  • Database: MySQL (using the mysql2 library)
  • Authentication: JWT (JSON Web Tokens) stored in cookies.
  • File Handling: pdf-lib for PDF generation, multer for file uploads.
  • Security: helmet for securing HTTP headers, express-rate-limit for rate limiting, and dynamic CSP nonces to prevent XSS attacks.

⚙️ Getting Started

Prerequisites

Local Development

  1. Clone the repository:

    git clone https://github.com/CodeByAmrit/school.git
    cd school
  2. Install dependencies:

    npm install
  3. Set up environment variables:

    Create a .env file in the root of the project and add the following variables:

    DB_HOST=your-database-host
    DB_USER=your-database-user
    DB_PASSWORD=your-database-password
    DB_DATABASE=your-database-name
    DB_PORT=your-database-port
    JWT_SECRET=your-jwt-secret
    EMAIL_ID=your-email-address
    EMAIL_PASSWORD=your-email-password
  4. Run the application:

    npm run dev

    The server will start in development mode with nodemon at http://localhost:4000.

🐳 Docker

This project is fully containerized and can be run using Docker.

Running with Docker Compose

The easiest way to run the application in a production-like environment is with docker-compose.

  1. Start the service:

    docker-compose up

    This will use the pre-built image codebyamrit/student-tracker from Docker Hub. The application will be available at http://localhost:8080.

Building the Docker Image

You can also build the Docker image from the source code.

  1. Build the image:

    docker build -t your-dockerhub-username/student-tracker .
  2. Run the container:

    docker run -d -p 8080:5000 --name student-tracker your-dockerhub-username/student-tracker

🔄 CI/CD

This project uses GitHub Actions for continuous integration and deployment.

  • Workflow: .github/workflows/docker-image.yml
  • Trigger: The workflow is triggered on every push to the create-docker-image branch.
  • Action: It builds a new Docker image and pushes it to Docker Hub with the tags latest and a build number (e.g., 123).

This setup automates the process of creating a new Docker image whenever changes are pushed to the specified branch, ensuring that the latest version of the application is always ready for deployment.

📝 License

This project is licensed under the ISC License. See the LICENSE file for details.

About

Scalable School Management SaaS featuring RBAC, automated attendance tracking, and comprehensive academic reporting built for real-world institutional use.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors