Skip to content

TAP is a comprehensive campus management application that serves as a one-stop solution for all campus-related activities.

License

Notifications You must be signed in to change notification settings

phoenixdev100/TAP

Repository files navigation

πŸŽ“ TAP – Training, Academics, and Placement πŸ“š

Vite React TypeScript Tailwind CSS Node.js MongoDB Express License PRs Welcome

Campus Dashboard Preview

🌟 About The Project

TAP (Training, Academics, and Placement) is a comprehensive campus management application designed to revolutionize how educational institutions handle academic activities and enhance the student experience. Built with modern web technologies, TAP provides an intuitive, responsive interface for managing schedules, assignments, study materials, and placement activities.

🎯 Problem Statement

Traditional campus management systems often suffer from:

  • Complex, outdated user interfaces
  • Limited mobile accessibility
  • Poor integration between academic and placement services
  • Lack of real-time updates and notifications

πŸ’‘ Solution

TAP addresses these challenges by providing:

  • Modern UI/UX: Clean, intuitive interface built with React and Tailwind CSS
  • Real-time Updates: Live notifications and instant data synchronization
  • Mobile-First Design: Fully responsive across all devices
  • Unified Platform: Integrated academic and placement management
  • Scalable Architecture: Built with modern, maintainable technologies

πŸ—οΈ Architecture

TAP follows a modern three-tier architecture with clear separation of concerns:

  • Frontend: React 18 with TypeScript, Vite, and Tailwind CSS
  • Backend: Express.js with Node.js and MongoDB
  • Database: MongoDB with Mongoose ODM

For detailed architecture information, see ARCHITECTURE.md

✨ Features

For detailed feature information, see FEATURES.md

πŸ“š Academic Management

  • πŸ“… Interactive Schedule: Daily, weekly, and monthly calendar views
  • πŸ“ Assignment Tracking: Create, submit, and grade assignments
  • πŸ“š Study Materials: Upload and organize course materials
  • βœ… Attendance System: Track and manage student attendance
  • 🎯 Grade Management: Comprehensive grading system with analytics

🎨 User Experience

  • πŸŒ“ Theme Support: Dark/light mode with system preference detection
  • πŸ“± Responsive Design: Optimized for mobile, tablet, and desktop
  • 🎯 Intuitive Navigation: Sidebar navigation with breadcrumbs
  • πŸ”” Real-time Notifications: Push notifications for important updates
  • 🌍 Accessibility: WCAG 2.1 compliant with keyboard navigation

πŸ”’ Security & Authentication

  • πŸ” JWT Authentication: Secure token-based authentication
  • πŸ‘₯ Role-Based Access: Different permissions for students, faculty, and admin
  • πŸ›‘οΈ API Security: Rate limiting, input validation, and sanitization
  • πŸ”’ Data Privacy: Encrypted sensitive data storage

πŸ“Š Analytics & Reporting

  • πŸ“ˆ Performance Analytics: Student performance tracking
  • πŸ“Š Attendance Reports: Comprehensive attendance analytics
  • πŸ“‹ Assignment Statistics: Submission and grading metrics
  • 🎯 Placement Analytics: Job placement statistics and trends

πŸ› οΈ Tech Stack

Frontend

  • Framework: React 18.3.1 with TypeScript 5.5.3
  • Build Tool: Vite 5.4.1
  • Styling: Tailwind CSS 3.4.11 + shadcn/ui components
  • State Management:
    • React Query (@tanstack/react-query 5.56.2)
    • React Hook Form 7.53.0 with Zod 3.23.8
  • Routing: React Router DOM 6.26.2
  • UI Components: Radix UI primitives
  • Icons: Lucide React 0.462.0
  • Charts: Recharts 2.12.7
  • Animations: Framer Motion 12.6.5
  • Date Handling: date-fns 3.6.0, react-day-picker 8.10.1

Backend

  • Runtime: Node.js (v18+ recommended)
  • Framework: Express.js 4.18.2
  • Database: MongoDB with Mongoose 7.6.3
  • Authentication:
    • JWT (jsonwebtoken 9.0.2)
    • Password Hashing (bcryptjs 2.4.3)
  • File Upload: Multer 2.0.2
  • Environment: dotenv 16.3.1
  • Development: nodemon 3.0.1
  • Security: CORS 2.8.5, helmet (recommended)

Development Tools

  • Code Quality: ESLint 9.9.0 with TypeScript support
  • Type Checking: TypeScript 5.5.3
  • Package Management: npm 9+
  • Version Control: Git
  • API Testing: Postman (recommended)

πŸš€ Quick Start

🎯 One-Click Setup (Recommended)

# Clone and setup automatically
git clone https://github.com/phoenixdev100/tap.git
cd tap
npm run setup

πŸ“‹ Prerequisites

Ensure you have the following installed:

  • Node.js: Version 18.0.0 or higher
  • npm: Version 9.0.0 or higher
  • MongoDB: Version 6.0 or higher (local or Atlas)
  • Git: For version control

Check versions:

node --version  # Should be v18+
npm --version   # Should be 9+
mongod --version # Should be 6+

βš™οΈ Installation

1. πŸ“₯ Clone the Repository

git clone https://github.com/phoenixdev100/tap.git
cd tap

2. πŸ“¦ Install Dependencies

# Install frontend dependencies
cd frontend
npm install

# Install backend dependencies  
cd ../backend
npm install

# Return to root
cd ..

3. πŸ—„οΈ Set Up Database

Option A: MongoDB Atlas (Cloud)

  1. Create a free account at MongoDB Atlas
  2. Create a new cluster
  3. Get your connection string

Option B: Local MongoDB

# Install MongoDB locally
# Windows: Download from mongodb.com
# macOS: brew install mongodb-community
# Linux: sudo apt-get install mongodb

# Start MongoDB service
mongod

4. πŸ”§ Environment Configuration

Create environment files in both frontend and backend directories:

Backend Environment (backend/.env):

# Database
MONGODB_URI=mongodb://localhost:27017/tap
# or for Atlas: mongodb+srv://username:[email protected]/tap

# Authentication
JWT_SECRET=your_super_secret_jwt_key_here
JWT_EXPIRE=7d

# Server
PORT=5000
NODE_ENV=development

# File Upload
MAX_FILE_SIZE=10485760
UPLOAD_PATH=./uploads

# Email (optional)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=[email protected]
EMAIL_PASS=your_app_password

Frontend Environment (frontend/.env):

# API
VITE_API_URL=http://localhost:5000
VITE_API_TIMEOUT=10000

# App
VITE_APP_NAME=TAP
VITE_APP_VERSION=1.0.0

# Features
VITE_ENABLE_ANALYTICS=false
VITE_ENABLE_NOTIFICATIONS=true

5. πŸš€ Start the Application

# Start backend server (in terminal 1)
cd backend
npm run dev

# Start frontend development server (in terminal 2)  
cd frontend
npm run dev

6. 🌐 Access the Application

For detailed setup instructions, see INSTALLATION.md and SETUP.md


πŸ“š Documentation

Complete documentation is available in separate files:

πŸ“ License

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

πŸ“„ License Summary

MIT License

Copyright (c) 2025 Deepak

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

πŸ™ Acknowledgments

🌟 Special Thanks

  • All contributors who help improve this project
  • The open-source community for amazing tools and libraries
  • Educational institutions that provided valuable feedback

πŸš€ Built with ❀️ by Deepak

GitHub followers GitHub stars

⭐ Star this repository if it helped you!

About

TAP is a comprehensive campus management application that serves as a one-stop solution for all campus-related activities.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •