Velo Certification Project
In this part of the certification process, you’ll build a sample project using Corvid. Depending on your previous knowledge and experience working with Corvid, this project could take you as little as 4 hours to complete.
You’ll be creating a phone book application for contact management lists. Each site member will be able to see their own individual list of phone book contacts with contact details, add new contacts, and get in touch with the contacts by email.
Each wix-user (site member) has their own individual set of phone book contacts and will only be able to see the contacts they added. You’ll be creating a collection that stores phone book contact details, so that each wix-user can see only their list of phone book contacts and the corresponding contact details.
Each phone book contact will hold the following data (feel free to add as many categories as you like):
*The phone number field should have no specific formatting
The application will contain 4 views:
1. Home Page
The ‘Home Page’ will present all the contacts that the currently logged-in user added (name and image) in the application.
The page will contain:
A repeating element with the name and the image of each contact
Clicking on a contact will redirect to the ‘Contact Page’
A button that redirects to the ‘Add Contact Page’
2. Contact Page
The ‘Contact Page’ will present each contact’s details.
The page will contain:
All the data that we have on the individual phone book contact
A section for the site member to send an email to the contact, which contains:
A Text Box for email content
A ‘Send Email’ button that will send the email
A success message for when the email was sent
A failure message if the email wasn’t sent
A ‘Remove’ button that will open the ‘Remove Contact Confirmation Lightbox’
3. Remove Contact Confirmation Lightbox
The ‘Remove Contact Confirmation Lightbox’ will allow the user to delete a contact.
The lightbox will include:
A ‘Yes’ button for deletion approval and then redirect to the home page
A ‘No’ button for canceling the deletion action - this will close the lightbox and go back to the contact page
4. Add Contact Page
The ‘Add Contact Page’ will allow site members to add new contacts to the contact list using a form. Please validate the contact phone number.
*Make sure the form allows the user to add all the data related to each contact.
*Please note, the phone number field should have no specific formatting.
Implement one of the following features:
Happy Birthday Email - Run a daily scheduled job that will send a ‘Happy Birthday’ email to the contacts that are celebrating their birthday.
Contacts API - Expose an API endpoint for getting all the contacts, and another endpoint for deleting a contact.
Design is not a part of the reviewing process, but we encourage you to make your app look presentable.
Don’t worry about making your app responsive (mobile-friendly) as we will review it in the desktop environment only.
Users will need to log in to the application using a user login system.
VERY IMPORTANT: use the built-in Wix system to allow all users to log in without requiring the site owner's permission. To do this, choose "Everyone" under "Who can be a member?" within the Default Form section
Although Wix provides APIs for sending emails, we would like to evaluate your usage of an external API. Therefore, the email should be sent using an external email service provider. The external API you use must be called from the Corvid backend (not frontend).
Note that API keys must be stored in the Secrets Manager
Use the wix-users module to allow each site member to access their own list of phone book contacts.
Hint: Not all functionality requires coding. Please read this article on Connecting page elements.
Hint: Use Corvid Collections to store your data.
Corvid Codecademy Course
Udemy Corvid Course
Corvid API Reference
Keep in Mind
We ask that you complete this assignment at the same level of professionalism as you would for a customer, including the appropriate QA from incognito mode and using a new user account (non-admin).