Project Summary:
- Considering the difficulty of the college application process, we have created an app that allows students to organize their application progress to ensure efficiency and ease of access. Our CPT project is an application that allows users to create their own, personalized accounts and login using the same credentials to track their application progress from a variety of colleges stored in our database.
My Features:
- I created the sign up and login features along with adding a new
email
parameter to our SQLite database. This allows users to enter their email address while creating an account, allowing the application to store the email to be constantly used in the application process for each college. Additionally, I created the welcome page that greeted the users upon visiting the website and allowed them to navigate to the login page. I also created the error pages that redirected the user to the appropriate error page when using the wrong login credentials or trying to navigate to a non-existent subpage.
Click here for CollegeBoard requirements document (Both components A and B)
CollegeBoard Requirements:
Component A
CB Requirement | Fulfillment |
---|---|
Instructions for input from one of the following: the user, a device, an online datas stream, a file | Our project includes a login feature that prompts the user to enter the correct credentials in order to access their personalized college application tracking page. Furthermore, we also have a sign up feature that allows the user to input their name, username, password, date of birth, and email. |
Use of at least one list (or other collection type) to represent a collection of data that is stored and used to manage program complexity and help fulfill the users purpose | For storing user data, we used an SQLite database that stores user information in the following paramters: `id`, `name`, `uid` or username, `password`, `dob`, and `email`. |
At least one procedure that contributed to the program’s intended purpose where you have defined: the name, return type, one or more parameters | The following procedure checks for the validity of the login information (obtained from the backend using a `fetch` function) and allows the user to login and access their college application tracker. It also redirects users to the specific error pages based on different error cases. |
An algorithm that includes sequencing, selection, and iteration that is in the body of the selected procedure | The code snippet below is from our user.py API file. For the user deletion feature, which is exclusive to the Admin role, the code iterates through the list of users retrieved from the database. If a user's 'uid' matches the 'uid' obtained from the request payload, it deletes that user. After the deletion loop, it attempts to return a JSON response containing the details of the deleted user. |
Calls to your student-developed procedure | This code uses the GET request to read and extract all the users and their corresponding information from our database in order to be used in the frontend database viewer. |
Instructions for output (tactile, audible, visual, or) based on input and program functionality | This code fetches the corresponding college list based on the user making the request. It uses the `/edit` endpoint in our user.py API. |
Component B
CB Requirement | Fulfillment |
---|---|
Input to your program | The video showcases inputting user information into the login and sign-up sections. |
At least one aspect of the functionality of your program | The program either successfully logs a user in or creates a new account as long as the information is credible and accurate. |
Output produced by your program | The program prompts the user upon succesful login or account creation, and redirects the user to all the appropriate locations in the website. |
DOES NOT contain any distinguishing information about yourself | The video does not contain any distinguishing information about myself - any such information has been cropped out, which can be seen in the video. |
DOES NOT contain voice narration (though text captions are encouraged) | The video does not contain voice narration. Rather, it uses captions for any explanations. |
Video is either .webm, .mp4, .wmv, .avi, or .mov format | The video is in the .mp4 format. |
Video is no more than 1 minute in length | The video is around 54 seconds long, which is less than 1 minute. |
Video is no more than 30MB file size | The file size is less than 30 MB - it is 5.196 MB. |
Key Commits:
Website login and sign up feature implementation along with menu, home page, and personalized application tracker page
Edit and delete user functionalities for admin
user.py customization, auth_middleware.py addition, and major init.py and model users.py changes
Admin role implementation in backend