A comprehensive school attendance tracking system using NFC card readers, built with modern technologies.
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
- 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
- Backend: Node.js, Express, MongoDB
- Web Frontend: React, Vite, TailwindCSS
- Mobile: React Native, Expo
- Embedded: ESP32, Arduino/PlatformIO
- Infrastructure: Docker, Docker Compose
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Expo CLI (for mobile development)
- PlatformIO (for ESP32 development)
- Clone the repository:
git clone <repository-url>
cd titulacion_dian_26- Run setup script (generates package-lock.json files and .env):
# Windows
setup.bat
# Linux/Mac
chmod +x setup.sh
./setup.sh- Edit .env with your configuration:
# Edit MongoDB credentials, JWT secret, etc.
nano .env- Start services with Docker:
docker-compose up -d- Seed the database with sample data (optional but recommended):
# Windows
seed.bat
# Linux/Mac
chmod +x seed.sh
./seed.sh
# Or using Make
make seedThis creates:
- 1 Admin user: admin@school.com / admin123
- 2 Professors: professor1@school.com / prof123
- 5 Parents: parent1@email.com / parent123
- 8 Students with NFC cards
- ~50 attendance records (last 7 days)
- 3 sample messages
- Access the applications:
- API: http://localhost:3000
- Web App: http://localhost:5173
- MongoDB: localhost:27017
cd api
npm install
npm run devcd web
npm install
npm run devcd mobile
npm install
npx expo startcd esp32
pio run -t upload
pio device monitor.
├── api/ # Backend API
├── web/ # Web application
├── mobile/ # Mobile application
├── esp32/ # ESP32 firmware
├── docs/ # Documentation
└── docker-compose.yml
See the docs folder for detailed documentation:
MIT