Do Task For Me is a comprehensive full-stack web application designed for managing academic and professional task assignments. The platform facilitates seamless task submission, real-time status tracking, automated email notifications, and integrated file management through Google Drive.
Live Website: dotaskforme.onrender.com
- Multi-provider OAuth Integration (Google, Facebook, LinkedIn)
- Session-based authentication with secure cookie management
- Admin security layer with custom security keys
- Password reset functionality with token-based verification
- Complete task lifecycle management (Submission β Processing β Completion)
- Real-time status updates (Not Started β Started β Completed)
- Payment status tracking (Not Paid Yet β Paid)
- Advanced assignment categorization and filtering
- Automated email notifications for task events
- Professional email templates with responsive design
- Multi-recipient BCC functionality
- Google Drive API integration for secure file storage
- Automatic file permission management
- Download link generation for completed tasks
- User Dashboard: Task submission and status tracking
- Admin Dashboard: Complete system oversight and management
- Runtime: Node.js
- Framework: Express.js
- Template Engine: EJS
- Database: MongoDB with Mongoose ODM
- Authentication: Passport.js
- Templating: EJS with partials and layouts
- Styling: Custom CSS with responsive design
- Client-side: Vanilla JavaScript
- File Storage: Google Drive API
- Email Service: Nodemailer with Gmail SMTP
- Session Storage: MongoDB session store
- Node.js (v14 or higher)
- MongoDB Atlas account
- Google Cloud Platform account
- Gmail account for email services
- Clone the repository
git clone <repository-url>
cd Do-Task-For-Me- Install dependencies
npm install- Environment Configuration
Create a
.envfile:
MONGODB_URI=your_mongodb_connection_string
GOOGLE_DRIVE_FOLDER_ID=your_google_drive_folder_id
EMAIL_USER=your_gmail_address
EMAIL_PASS=your_gmail_app_password
SESSION_SECRET=your_session_secret
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret- Google Drive API Setup
- Enable Google Drive API in Google Cloud Console
- Create service account credentials
- Update credentials in
app.js
- Start the application
npm startDo-Task-For-Me/
βββ middlewares/ # Custom middleware functions
βββ public/ # Static assets (CSS, JS, images)
βββ views/ # EJS templates
β βββ main/ # Main pages and landing pages
β βββ user/ # User dashboard and authentication
β βββ admin/ # Admin interface
β βββ email-templates/ # Dynamic email templates
βββ uploads/ # Temporary file storage
βββ app.js # Main application file
βββ package.json # Dependencies and scripts
{
googleId: String,
name: String,
username: { type: String, unique: true },
email: { type: String, unique: true },
password: String,
resetToken: String,
resetTokenExpiration: Date
}{
assignmentType: String,
exactDeadline: Date,
email: String,
whatsapp: String,
additionalDetails: String,
status: { type: String, default: 'Not Started' },
payment_status: { type: String, default: 'Not Paid Yet' },
totalCost: Number,
fileUrl: String,
taskSubmissionUrl: String,
professionalLevel: Boolean,
programmingLanguage: String,
webDevelopmentType: String
}{
name: String,
email: { type: String, unique: true },
password: String,
resetToken: String,
resetTokenExpiration: Date
}POST /login-user- User authenticationPOST /signup-user- User registrationGET /auth/google- Google OAuth authenticationPOST /reset-password-user- Password reset initiation
POST /submit-form- Task submission with file uploadGET /fetch-assignments- Retrieve user assignmentsGET /assignment-details- Detailed assignment viewGET /user-dashboard- User dashboard with assignments
POST /admin/update-status/:id- Update task statusPOST /admin/update-payment-status/:id- Update payment statusPOST /admin/update-cost/:id- Update assignment costPOST /admin/completed-work/submission- Submit completed workGET /admin/dashboard- Admin dashboard dataGET /fetch-all-assignments- Get all assignments with filtering
GET /- Main landing pageGET /services- Services pageGET /contact-us- Contact pageGET /stem-assignments/*- STEM assignment categoriesGET /academic-writing/*- Academic writing services
const upload = multer({ dest: 'uploads/', limits: { fileSize: 5 * 1024 * 1024 } });
// Google Drive integration
const drive = google.drive({ version: 'v3', auth });
const response = await drive.files.create({
requestBody: { name: req.file.originalname, mimeType: mimeType },
media: { mimeType: mimeType, body: fs.createReadStream(filePath) }
});const transporter = nodemailer.createTransport({
service: 'gmail',
auth: { user: 'dotaskforme@gmail.com', pass: 'app_password' }
});
// Dynamic email templates using EJS
const emailHtml = ejs.render(template, { assignmentData });const isAuthenticated = (req, res, next) => {
if (req.session.user) {
return next();
}
res.redirect('/login-user');
};The application is configured for deployment on Render.com with:
- Automatic SSL certificate handling
- MongoDB Atlas cloud database
- Environment variable configuration
- Process management
- Input validation and sanitization
- File type and size restrictions (5MB limit)
- Secure session management with MongoDB store
- OAuth 2.0 implementation
- Environment variable protection
- CSRF protection measures
- MongoDB indexing for efficient queries
- File streaming for large uploads
- Session storage optimization
- Template caching
- CDN-ready static assets
For technical support or inquiries:
- Email: dotaskforme@gmail.com
- Live Site: dotaskforme.onrender.com
This project is proprietary and confidential. All rights reserved.
Built with β€οΈ using Node.js, Express, EJS, MongoDB and Google Drive API