const express = require('express'); const jwt = require('jsonwebtoken'); const bcrypt = require('bcryptjs'); const { check, validationResult } = require('express-validator'); const router = express.Router(); // User Model const User = require('./models/User'); // Register Route for Studio Owners router.post( '/register', [ check('email', 'Please include a valid email').isEmail(), check('password', 'Password is required').exists(), ], async (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(400).json({ errors: errors.array() }); } const { email, password, role } = req.body; try { let user = await User.findOne({ email }); if (user) { return res.status(400).json({ msg: 'User already exists' }); } user = new User({ email, password, role, // "Studio Owner", "Judge", etc. }); // Hash password before saving const salt = await bcrypt.genSalt(10); user.password = await bcrypt.hash(password, salt); await user.save(); // Generate JWT Token const payload = { user: { id: user.id, role: user.role, }, }; jwt.sign( payload, process.env.JWT_SECRET, { expiresIn: 3600 }, (err, token) => { if (err) throw err; res.json({ token }); } ); } catch (err) { console.error(err.message); res.status(500).send('Server error'); } } ); module.exports = router;
top of page

SOLO/DUO/TRIO REGISTRATION FEES

DanceNation3(146).JPG

SOLO FEES

$90 Before December 31

$100 After December 31

DanceNation1(676).JPG

DUET FEES

$115 Before December 31

$125 After December 31

DanceNation1(403).JPG

TRIO FEES

$140 Before December 31

$155 After December 31

*A late fee of $20 will be charged to any dancer registering less than 30 days before the competition date.

No refunds.

TEAM REGISTRATION FEES

Dance Nation Group.jpg

GROUP FEES

*Studio directors reach out to

dancenationutah@gmail.com for pricing.

bottom of page