{"id":24015918,"url":"https://github.com/aadityapanda/userregistration","last_synced_at":"2026-04-13T14:32:54.339Z","repository":{"id":270472996,"uuid":"910487132","full_name":"AadityaPanda/UserRegistration","owner":"AadityaPanda","description":"This is a Full Stack-based user registration application that allows users to sign up, receive email verification, and log in. It includes user registration functionality with email verification using Nodemailer for sending verification emails.","archived":false,"fork":false,"pushed_at":"2025-01-15T06:51:11.000Z","size":602,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T08:59:59.913Z","etag":null,"topics":["expressjs","full-stack","js","mysql","nodejs","react-hooks","react-router","react-router-dom","reactjs","sql","user-registration"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AadityaPanda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-31T12:10:02.000Z","updated_at":"2025-01-15T06:51:13.000Z","dependencies_parsed_at":"2024-12-31T13:19:31.733Z","dependency_job_id":"8033452b-d8df-4b58-a8eb-9fbf84be3c40","html_url":"https://github.com/AadityaPanda/UserRegistration","commit_stats":null,"previous_names":["aadityapanda/userregistration"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AadityaPanda%2FUserRegistration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AadityaPanda%2FUserRegistration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AadityaPanda%2FUserRegistration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AadityaPanda%2FUserRegistration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AadityaPanda","download_url":"https://codeload.github.com/AadityaPanda/UserRegistration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240729184,"owners_count":19848120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","full-stack","js","mysql","nodejs","react-hooks","react-router","react-router-dom","reactjs","sql","user-registration"],"created_at":"2025-01-08T08:23:09.148Z","updated_at":"2026-04-13T14:32:54.327Z","avatar_url":"https://github.com/AadityaPanda.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 User Registration App\n\n\u003cdiv align=\"center\"\u003e\n\n![Screenshot 2025-01-13 144947](https://github.com/user-attachments/assets/a9e8af7a-d56b-4f82-805a-4a5e73796090)\n\n**A comprehensive Node.js user registration system with admin dashboard and email verification**\n\n[![Node.js](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org/)\n[![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)](https://expressjs.com/)\n[![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)](https://reactjs.org/)\n[![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)](https://mysql.com/)\n[![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)\n[![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)](https://www.w3.org/Style/CSS/Overview.en.html)\n\n\u003c/div\u003e\n\n---\n\n## 📖 Overview\n\nThis is a full-stack Node.js application that provides a complete user registration system with email verification and an administrative dashboard. The application offers secure user management capabilities, allowing both regular users to register and authenticate, while providing administrators with comprehensive user management tools.\n\n### 🎯 Key Capabilities\n\nThe application ensures secure user management and provides a seamless experience for both regular users and administrators through:\n\n- **User Registration \u0026 Authentication** - Complete signup and login workflow\n- **Email Verification System** - Automated email verification using Nodemailer\n- **Administrative Dashboard** - Comprehensive user management interface\n- **CRUD Operations** - Full create, read, update, and delete functionality\n- **User Status Management** - Activate/deactivate user accounts\n- **Automated Cleanup** - Scheduled removal of unverified accounts\n\n---\n\n## 📋 Table of Contents\n\n- [🚀 Features](#-features)\n- [🛠️ Tech Stack](#️-tech-stack)\n- [📁 Project Structure](#-project-structure)\n- [⚙️ Setup](#️-setup)\n- [🔧 Installation](#-installation)\n- [🛣️ Routes Overview](#️-routes-overview)\n- [🧹 Scheduled Cleanup](#-scheduled-cleanup)\n- [📄 License](#-license)\n- [🤝 Contributing](#-contributing)\n- [📞 Contact](#-contact)\n\n---\n\n## 🚀 Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 👥 User Features\n- ✅ **User Registration** - Secure account creation\n- ✅ **Email Verification** - Automated verification emails\n- ✅ **User Authentication** - Login/logout functionality\n- ✅ **User Dashboard** - Personal account interface\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 👨‍💼 Admin Features\n- ✅ **Admin Dashboard** - Comprehensive management interface\n- ✅ **User Management** - Create, edit, delete users\n- ✅ **Account Control** - Activate/deactivate accounts\n- ✅ **User Overview** - View all registered users\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🛠️ Tech Stack\n\n\u003cdiv align=\"center\"\u003e\n\n### Backend\n![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Express.js](https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white)\n![Nodemailer](https://img.shields.io/badge/Nodemailer-0F1419?style=for-the-badge\u0026logo=nodemailer\u0026logoColor=white)\n\n### Frontend\n![React](https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)\n![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)\n![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n\n### Database \u0026 Tools\n![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n![Vite](https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white)\n![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge\u0026logo=git\u0026logoColor=white)\n\n\u003c/div\u003e\n\n---\n\n## 📁 Project Structure\n\n\u003cdetails\u003e\n\u003csummary\u003e🔍 Click to expand project structure\u003c/summary\u003e\n\n```\n📦 UserRegistration\n├── 📁 backend/\n│   ├── 📁 config/\n│   │   └── 📄 db.js                     # MySQL database connection\n│   ├── 📁 middleware/\n│   │   ├── 📄 isAdmin.js                # Admin verification middleware\n│   │   └── 📄 requireLogin.js           # Session check middleware\n│   ├── 📁 routes/\n│   │   ├── 📄 admin.js                  # Admin dashboard routes\n│   │   ├── 📄 dashboard.js              # User dashboard routes\n│   │   ├── 📄 home.js                   # Home page routes\n│   │   ├── 📄 login.js                  # Authentication routes\n│   │   ├── 📄 logout.js                 # Session management\n│   │   └── 📄 signup.js                 # User registration routes\n│   ├── 📁 services/\n│   │   └── 📄 emailService.js           # Email sending service\n│   ├── 📄 .env                          # Environment variables\n│   ├── 📄 .env.example                  # Environment template\n│   ├── 📄 cleanup.js                    # Automated cleanup task\n│   └── 📄 server.js                     # Main server file\n│\n└── 📁 frontend/your-project-name/\n    ├── 📁 src/\n    │   ├── 📄 App.jsx                   # Main React component\n    │   ├── 📄 main.jsx                  # React entry point\n    │   ├── 📁 components/\n    │   │   ├── 📁 AdminNavbar/\n    │   │   │   ├── 📄 AdminNavbar.css\n    │   │   │   └── 📄 AdminNavbar.jsx\n    │   │   ├── 📁 AdminSidebar/\n    │   │   │   ├── 📄 AdminSidebar.css\n    │   │   │   └── 📄 AdminSidebar.jsx\n    │   │   └── 📁 Navbar/\n    │   │       ├── 📄 Navbar.css\n    │   │       └── 📄 Navbar.jsx\n    │   ├── 📁 pages/\n    │   │   ├── 📄 Admin.jsx             # Admin dashboard\n    │   │   ├── 📄 CreateUser.jsx        # User creation\n    │   │   ├── 📄 Dashboard.jsx         # User dashboard\n    │   │   ├── 📄 EditUser.jsx          # User editing\n    │   │   ├── 📄 Home.jsx              # Landing page\n    │   │   ├── 📄 Login.jsx             # Authentication\n    │   │   ├── 📄 ManageUsers.jsx       # User management\n    │   │   └── 📄 Signup.jsx            # Registration\n    │   └── 📁 styles/\n    │       ├── 📄 Admin.css\n    │       ├── 📄 CreateUser.css\n    │       ├── 📄 Dashboard.css\n    │       ├── 📄 EditUser.css\n    │       ├── 📄 Home.css\n    │       ├── 📄 Login.css\n    │       ├── 📄 ManageUsers.css\n    │       └── 📄 Signup.css\n    ├── 📁 public/\n    ├── 📄 index.html\n    ├── 📄 package.json\n    └── 📄 vite.config.js\n```\n\n\u003c/details\u003e\n\n---\n\n## ⚙️ Setup\n\n### 📋 Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n| Requirement | Version | Description |\n|-------------|---------|-------------|\n| ![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white) | 14.x or above | JavaScript runtime |\n| ![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=flat-square\u0026logo=mysql\u0026logoColor=white) | Latest | Database server |\n| ![Git](https://img.shields.io/badge/Git-F05032?style=flat-square\u0026logo=git\u0026logoColor=white) | Latest | Version control |\n| ![React](https://img.shields.io/badge/React-20232A?style=flat-square\u0026logo=react\u0026logoColor=61DAFB) | Latest | Frontend framework |\n\n---\n\n## 🔧 Installation\n\n### 🖥️ Backend Setup\n\n\u003cdetails\u003e\n\u003csummary\u003e📥 Step 1: Clone the Repository\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/AadityaPanda/UserRegistration.git\ncd backend\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e📦 Step 2: Install Dependencies\u003c/summary\u003e\n\n```bash\nnpm install\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🔧 Step 3: Environment Configuration\u003c/summary\u003e\n\nCreate your environment file:\n```bash\ncp .env.example .env\n```\n\nConfigure your `.env` file with the following variables:\n\n```env\n# 🗄️ Database Configuration\nDB_HOST=your_database_host\nDB_USER=your_database_user\nDB_PASSWORD=your_database_password\nDB_NAME=your_database_name\n\n# 🔐 Session Configuration\nSESSION_SECRET=your_session_secret\n\n# 🌐 Server Configuration\nPORT=3000\nBASE_URL=http://localhost:3000\n\n# 📧 SMTP Configuration\nSMTP_HOST=your_smtp_host\nSMTP_PORT=587\nEMAIL_USER=your_email_address\nEMAIL_PASS=your_email_password\nSMTP_SECURE=false\n```\n\n\u003c/details\u003e\n\n### 🗄️ Database Setup\n\n\u003cdetails\u003e\n\u003csummary\u003e📊 Step 4: Database Configuration\u003c/summary\u003e\n\nExecute the following SQL commands to set up your database:\n\n```sql\n-- Create the database\nCREATE DATABASE myform;\n\n-- Switch to the database\nUSE myform;\n\n-- Create the users table\nCREATE TABLE users (\n    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,\n    firstname VARCHAR(30) NOT NULL,\n    middlename VARCHAR(30),\n    lastname VARCHAR(30) NOT NULL,\n    username VARCHAR(50) NOT NULL UNIQUE,\n    password VARCHAR(64) NOT NULL,\n    mobile_no VARCHAR(15) NOT NULL,\n    email VARCHAR(50) NOT NULL UNIQUE,\n    isAdmin BOOLEAN DEFAULT FALSE,\n    verified BOOLEAN DEFAULT FALSE,\n    active BOOLEAN DEFAULT TRUE\n);\n\n-- Create an admin user\nUPDATE users SET isAdmin = TRUE WHERE username = 'admin';\n\n-- Reset auto-increment\nALTER TABLE users AUTO_INCREMENT = 1;\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🚀 Step 5: Start the Backend Server\u003c/summary\u003e\n\n```bash\nnpm start\n```\n\n✅ Backend server will be running at `http://localhost:3000`\n\n\u003c/details\u003e\n\n### 🎨 Frontend Setup\n\n\u003cdetails\u003e\n\u003csummary\u003e⚛️ Step 1: Create React Frontend\u003c/summary\u003e\n\n```bash\ncd frontend\nnpm create vite@latest your-project-name -- --template react\ncd your-project-name\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e📦 Step 2: Install Frontend Dependencies\u003c/summary\u003e\n\n```bash\nnpm install\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🏗️ Step 3: Build and Run\u003c/summary\u003e\n\n```bash\n# Create production build\nnpm run build\n\n# Start development server\nnpm run dev\n```\n\n✅ Frontend will be running at `http://localhost:5173`\n\n\u003c/details\u003e\n\n---\n\n## 🛣️ Routes Overview\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e🌐 Route\u003c/th\u003e\n\u003cth\u003e📝 Description\u003c/th\u003e\n\u003cth\u003e🔒 Access\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e🏠 Landing page\u003c/td\u003e\n\u003ctd\u003e🌍 Public\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/signup\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e📝 User registration\u003c/td\u003e\n\u003ctd\u003e🌍 Public\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/login\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e🔐 User authentication\u003c/td\u003e\n\u003ctd\u003e🌍 Public\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/dashboard\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e👤 User dashboard\u003c/td\u003e\n\u003ctd\u003e🔒 Authenticated\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/admin\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e👨‍💼 Admin homepage\u003c/td\u003e\n\u003ctd\u003e🛡️ Admin only\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/admin/user\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e👥 User management\u003c/td\u003e\n\u003ctd\u003e🛡️ Admin only\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/admin/create\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e➕ Create new user\u003c/td\u003e\n\u003ctd\u003e🛡️ Admin only\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e/admin/edit/:id\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e✏️ Edit user details\u003c/td\u003e\n\u003ctd\u003e🛡️ Admin only\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n---\n\n## 🧹 Scheduled Cleanup\n\nThe application includes an automated cleanup system (`cleanup.js`) that:\n\n- 🕐 **Runs every hour** to maintain database hygiene\n- 🗑️ **Removes unverified users** whose verification tokens have expired\n- 📧 **Prevents spam registrations** by cleaning up abandoned accounts\n- ⚡ **Optimizes database performance** by removing inactive records\n\nThis ensures your database stays clean and performs optimally over time.\n\n---\n\n## 📄 License\n\n\u003cdiv align=\"center\"\u003e\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n\n**This project is licensed under the MIT License**\n\nFeel free to use, modify, and distribute it in your projects.\n\n\u003c/div\u003e\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help improve this project:\n\n### 🔧 Development Workflow\n\n1. **🍴 Fork the repository**\n2. **🌿 Create a feature branch**\n   ```bash\n   git checkout -b feature/YourFeatureName\n   ```\n3. **💾 Commit your changes**\n   ```bash\n   git commit -m \"Add YourFeatureName\"\n   ```\n4. **📤 Push to the branch**\n   ```bash\n   git push origin feature/YourFeatureName\n   ```\n5. **🔄 Open a pull request**\n\n### 📋 Contribution Guidelines\n\n- 🧪 Ensure all tests pass before submitting\n- 📝 Update documentation for new features\n- 🎨 Follow the existing code style\n- 💬 Provide clear commit messages\n\nCheck [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n---\n\n## 📞 Contact\n\n\u003cdiv align=\"center\"\u003e\n\n**👨‍💻 Aaditya Panda**\n\n[![Email](https://img.shields.io/badge/Email-aadityapanda23@gmail.com-red?style=for-the-badge\u0026logo=gmail\u0026logoColor=white)](mailto:aadityapanda23@gmail.com)\n[![GitHub](https://img.shields.io/badge/GitHub-AadityaPanda-black?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/AadityaPanda)\n\n---\n\n\u003csub\u003e💝 **Thank you for using the User Registration App!**\u003c/sub\u003e\n\n*If you found this project helpful, please consider giving it a ⭐ on GitHub!*\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faadityapanda%2Fuserregistration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faadityapanda%2Fuserregistration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faadityapanda%2Fuserregistration/lists"}