Skip to content

Repository files navigation

School Attendance System with NFC

A comprehensive school attendance tracking system using NFC card readers, built with modern technologies.

Architecture

This project consists of 4 main components:

  • ESP32: NFC card reader firmware for attendance tracking
  • API: Node.js/Express backend with MongoDB
  • Web: React + Vite web application for administrators and professors
  • Mobile: React Native mobile app for parents

Features

  • NFC card reading for attendance tracking
  • Real-time attendance management
  • Professor-specific attendance lists
  • Individual and group messaging to parents
  • Parent portal for viewing student attendance
  • Push notifications for attendance events

Tech Stack

  • Backend: Node.js, Express, MongoDB
  • Web Frontend: React, Vite, TailwindCSS
  • Mobile: React Native, Expo
  • Embedded: ESP32, Arduino/PlatformIO
  • Infrastructure: Docker, Docker Compose

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Node.js 18+ (for local development)
  • Expo CLI (for mobile development)
  • PlatformIO (for ESP32 development)

Installation

  1. Clone the repository:
git clone <repository-url>
cd titulacion_dian_26
  1. Run setup script (generates package-lock.json files and .env):
# Windows
setup.bat

# Linux/Mac
chmod +x setup.sh
./setup.sh
  1. Edit .env with your configuration:
# Edit MongoDB credentials, JWT secret, etc.
nano .env
  1. Start services with Docker:
docker-compose up -d
  1. Seed the database with sample data (optional but recommended):
# Windows
seed.bat

# Linux/Mac
chmod +x seed.sh
./seed.sh

# Or using Make
make seed

This creates:

  1. Access the applications:

Development

API Development

cd api
npm install
npm run dev

Web Development

cd web
npm install
npm run dev

Mobile Development

cd mobile
npm install
npx expo start

ESP32 Development

cd esp32
pio run -t upload
pio device monitor

Project Structure

.
├── api/          # Backend API
├── web/          # Web application
├── mobile/       # Mobile application
├── esp32/        # ESP32 firmware
├── docs/         # Documentation
└── docker-compose.yml

Documentation

See the docs folder for detailed documentation:

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages