Implemented a user dashboard with the ability to manage projects and forms. Users can now create, view, and manage projects and forms directly from the dashboard.
Set up an Express.js server with Handlebars views for rendering user interfaces, including login, signup, dashboard, and form-related pages.
Integrated user authentication with Google OAuth2 and local login using Passport.js, including login, logout, and session handling.
Configured database models with Prisma to manage projects, forms, and users, as well as relationships between them.
Enabled dynamic form creation and submission handling, allowing forms to be created with customizable fields and embedded in external sites.
Set up rate limiting and validation for form submissions to prevent abuse and ensure data integrity.
Added error handling and input validation across various endpoints for better user feedback and server stability.
Included Swagger documentation for API endpoints, facilitating easier API usage and testing.
Utilized Bootstrap for UI styling and improved the overall UX with a responsive design.
Migrated the view templates to Handlebars and structured partials for reuse across different pages.
Added a project creation feature that requires users to create a project before adding forms, ensuring proper organizational structure.
Added nodemailer
Related Issue
Closes #80 #75 #83 #78 #129
Type of Change
Please check the type of change made in this PR:
[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation update
[x] Refactoring (improving code quality without adding features or fixing bugs)
[ ] Other (specify):
Testing
Validated all CRUD operations for projects, forms, and users via API endpoints and the user dashboard.
Tested Google OAuth2 and local authentication flows for login, signup, and logout.
Verified that projects and forms load correctly in the dashboard and allow creation, updating, and deletion.
Confirmed that form submissions work as expected, with proper rate limiting and validation.
Manually tested all Handlebars views for responsiveness and layout consistency across devices.
Performed database migrations and verified data integrity in the Prisma models.
Ran Swagger documentation to confirm accuracy and usability of documented API routes.
Checklist
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my code.
[x] I have commented on my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] New and existing unit tests pass locally with my changes.
[x] Any dependent changes have been merged and published in downstream modules.
Screenshots (if applicable)
NONE
Additional Notes
Further improvements can include adding pagination to forms and projects lists, implementing additional analytics, and enhancing validation and error messages for improved user experience.
Future iterations may also include WebSocket integration for real-time updates and form status changes.
Description
Related Issue
Type of Change
Please check the type of change made in this PR:
Testing
Checklist
Screenshots (if applicable)
Additional Notes