shpe-at-uci / shpe-uci-portal Goto Github PK
View Code? Open in Web Editor NEWPortal Website for SHPE-UCI
Home Page: https://shpe.eng.uci.edu/portal
License: MIT License
Portal Website for SHPE-UCI
Home Page: https://shpe.eng.uci.edu/portal
License: MIT License
to attract more members to SHPE-UCI wide events, and create more easy access, transparency for anyone, not just our members
Request SHPE-UCI exec board to make a public google calendar, ask leads to save events here, and embed the html <iframe/> into a page. No API required, just that snippet of code from google calendar
Create a whole calendar from scratch which would be more time consuming. https://wics.ics.uci.edu/events/
Divide it by year
Include Program Manager
Front end - Back end people
Feature Request
As a user, I'd like to - Have the ability to start typing a major and autocomplete it so I don't have to type it all.
Solution - Deliverable
HTML provides a solution with datalists
Helpful Links
Will require user to input:
password
email (uci)
First name
Last name
ucinetid
major
year
phone (maybe optional)
As a user, I should be able to see my public Portfolio page, along with a preview of my resume.
Requirements:
There is no certain way this must look, as long as its pleasing for the user. :)
Feature
- Install GitBash if using Windows
- Follow
README.md
of shpe-uci-portal to Install & Run Python web app usingTerminal
orGitBash
- Create a new GitHub branch based on
master
& call italumni-filter-functions
- Add a
getAlumniUser()
in shpe-uci-portal/app/routes/search.py file (similar togetAllUsers()
func)- Ensure that function prints users to the console when called
- Git add, commit, & push any changes to
origin/alumni-filter-functions
- Open a Pull-request for a code review anytime
Notes
Reach out @Globins for GitHub Branching clarifications
Reach out @josueal1 for Firebase questions
Shadowee
None
Feature
- Install GitBash if using Windows
- Follow
README.md
of shpe-uci-portal to Install & Run Python web app usingTerminal
orGitBash
- Create a new GitHub branch based on
master
called it ej:admin-dashboard
- Add a
shpe-uci-portal/app/templates/admin.html
file- Follow README.md of Admin-Dash-Template to Install & Preview app
- Copy any
html
,css
files from Admin-Dash-Template into ouradmin.html
- Git add, commit, & push any changes to to
origin/admin-dashboard
- Open a Pull-request for a code review anytime
Shadowee
Notes
Until backend dev havenot added a
/admin
route, Just use theAdmin-Dashboard
python webserver
We need to structure our database in order to track member points.
Remember to follow the new feature guidelines outlined on the README.md document when creating your branch.
Currently, we have a users object with all our users. I believe we should have the users and the points objects separate. Heres an example
DB: {
users: {
- user_id: {name: Guillermo}
- user_id2: {name: Osvaldo}
},
points: {
- user_id: {fall: 24, winter: 45, Spring: 20}
}
}
TO-DO
DB: {
points: {
- user_id: {fall: 24}
}
}
Is your feature request related to a problem? Please describe.
When I click on an alumni after I search for them, I should be redirected to a more details page to find more info about them.
Describe the solution you'd like
I would like a dynamic route that will change its content based on the username entered in the url.
For instance: localhost:5000/search/guilleeh --> should give me details about the alumni with that name. We still haven't decided how we want to have unique user id's, so for now maybe use their ucinetid
Describe alternatives you've considered
Instead of a whole new window, maybe you can do a little drop down window, with all their details.
Additional context
You have freedom to choose how to implement this.
Feature Request
As a user, I'd like to - be able to reset my password if I forgot it.
Solution - Deliverable
Create a page where a user can put their email and send a password reset link. Then if they click the link, they should be able to reset their password and log in once again.
Helpful Links
manually add a
paid_status
attribute to every current firebase user record HERE
Feature
- Follow
README.md
of shpe-uci-portal to Install & Run Python web app- Create a new GitHub branch based on
master
& call itadmin-route
- Add a
/admin
route in your local branch version ofshpe-uci-portal/app/__init__.py
file- Ensure that
admin()
function renders a basicadmin.html
onlocalhost:5000
- Git add, commit, & push any changes to
origin/admin-route
- Open a Pull-request for a code review anytime
Notes
May need to reach out to @josueal1 for clarifications
May need to updateadmin.html
frommaster
after frontend updates
Shadowee
None
**Feature request related to a problem? **
When I want to know more about SHPE, it's inconvenient having to search valuable information.
Describe the solution you'd like
When a user tries to go into a protected route, they should only be allowed if they are authenticated.
As a user, I want to click on a link on the navbar of the website, and be sent to a page where I can search for alumni by name. A simple, minimal search bar is fine.
Requirements:
The CocoaPods website has an excellent example for a minimalist search feature. Below are some examples: https://cocoapods.org/
As a user, when I drag and drop a resume file on the dashboard page, the app should tell me if I'm uploading a file incorrectly
TODO
<input type="file">
html tag: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/fileMIMEtype
of file is a application/pdf
. Here's basic html & js file checker->: https://gist.github.com/topalex/ad13f76150e0b36de3c4a3d5ba8dc63aRelated to: #53
User, time and from what type of system they've logged in. One to one relationship.
Settings page
Whenever branches are merged to master, the production environment should be automatically updated.
Options - CI/CD, ???
The css used in login is being used in order pages, conflicting with the style of other pages.
Brainstorm look and feel for our member portal.
Feature Request
- As a user, I'd like to notify the admins that I've paid my Venmo Fee with the press of a button
- I'd also like to see the status of my
membershpe
status update visually- Backend Task: Update the
paid_status
of that user topending
on firebase using python flask
Solution - Deliverable
Consider reusing shpe-signin HTML, Bootstrap (CSS), JS code
As a user, I'd like to be redirected to the dashboard if attempt to go into the login page or registration page. I want to stay logged in unless I log out on my own accord.
Solution - Deliverable
Solution- Check if session exists with the user in both login and registration functions in auth.py
Feature Request
- Make a
Data schema
of futureQuestion
records in Google Firebase (ej:{"title" : "str"}
)- Make Hierarchical Design of records of
Questions
on Firebase- Make an API System Design of a
/faq
endpoint ofGET
method (gets all questions as JSON)- Create user flow of an "admin" using a
/faq
toPOST
a new question with answer
Scrum Lead
Developers
Solution - Deliverable
- Meeting on Zoom & break into smaller tasks for each member
Feature Request
As a user, I'd like to - be able to see my name on the top right corner of the menu item. It currently says, "Hello, Frontend team!", but if I am logged in as Guillermo Hernandez, I would like it to say, "Hello, Guillermo".
Solution - Deliverable
Look in components.html, the navbar_logged_in(g) component, the button should dynamically have the name of the current user. You may have to define an API call to get the name of the current user since we don't have that yet.
Helpful Links
Ping Alejandro, as he worked on the macros and knows a little more about them than I do, but ping me as well if you need help.
Should include
email
password
name
major
...
This post request should allow existing users to edit/update their user information
Feature Request
As a user, I'd like to click a toggle button right above the search box, to only search for alumni, since right now it is searching for all members.
As a website visitor, I should able to leverage the power of SHPE UCI network member database and connect with anyone. Like Linkedin powerful filters!
Solution - Deliverable
A toggle button on the screen
Iteration over all Firebase users will contain a conditional on "Alumni"
Alumni page results must continue to look similar to current
-username
-password
-register link
-login button
-info about shpe @ uci
-info about the benefits of having an account
Feature
- Install GitBash if using Windows
- Follow
README.md
of shpe-uci-portal to Install & Run Python web app usingTerminal
orGitBash
- Create a new GitHub branch based on
master
called it ej:admin-status-on-register
- Git add, commit, & push any changes to to
origin/admin-status-on-register
- Add a new key-value pair,
"is_admin": "False"
, into thedata
py dictionary on this line so new Firebase Users have this attribute- Open a Pull-request for a code review anytime
- After merging, Manually test by registering a new email thru stage-web to ensure that
/register
didnt break AND code added new attributes to Firebase user
Shadowee
None
Notes
The dictionary is the data model schema lives in the
register()
function, which is called using the/register
api
As a user, when I drag and drop a resume file on the dashboard page, it should be uploaded to a Google Drive Folder.
TO-DO
resume-upload-api
, & publish it to github serversSumbit
button in templates/dashboard.html,dashboard.py
in /routes
(similar to settings.py
) to handle the POST request triggered from submit buttondashboard
from routes
and register app.register_blueprint(dashboard.bp)
in __init__.py
request.form
app
variable in flask, and use it to upload Lastname_Firstname.pdf
Solution to Blocker:
auth.py
in @bp.route('/register',
to add a resume_id: None
in the data
dashboard.py
for POST
handler if resume_id
is not empty then update fileEnd Goal:
UI/UX
return render_template()
that sends data
dictionary with a message "Resume Uploaded"Extra
resumable upload
with Drive APIFeature Request
As a SHPE at UCI Board member, I'd like to visualize KPI (key performing indicator) metrics about our chapter.
Solution - Deliverable
Create new Flask
/admin
website endpoint for Prototype
Customize template https://github.com/jonalxh/Flask-Admin-Dashboard
Consider Firebase user attributes for Permissioning
YT link will be added later.
As a user, I should be able to see my public Portfolio page, along with a preview of my resume.
Requirements:
Resume Preview Window
Display user info
Name
Email
Class status(Freshman, Sophomore,...)
Graduation Date
Seeking Internship(Yes/No)
Profile Picture
Bio
Anything else you think should go here.
There is no certain way this must look, as long as its pleasing for the user. :)
Feature Request
As an admin user, I'd like to see a clickable menu option that takes me to
/admin
Solution - Deliverable
Helpful Links
Feature
- Install GitBash if using Windows
- Follow
README.md
of shpe-uci-portal to Install & Run Python web app usingTerminal
orGitBash
- Create a new GitHub branch based on
master
called it ej:paid-status-on-register
- Git add, commit, & push any changes to to
origin/paid-status-on-register
- Add a new key-value pair,
"paid_status": "general"
, into thedata
py dictionary on this line so new Firebase Users have this attribute- Open a Pull-request for a code review anytime
- After merging, Manually test by registering a new email thru stage-web to ensure that
/register
didnt break AND code added new attributes to Firebase user
Shadowee
Notes
The dictionary is the data model schema lives in the
register()
function, which is called using the/register
api
Using Flask sessions or cookies, the user should be able to stay logged in if they click that option.
As a user, if I am part of a shpe Familia from the mentorSHPE program, I would like to see the points my Familia has.
We need to design how we want to store the points using Firebase Realtime Database.
I imagine something like this
families: {
fall: {
tech-eaters: 25,
dino: 50,
}
}
TO-DO
Helpful Links / Visuals
Example Leaderboard Dashboard Metrics UI
As a user on my phone, if I access the login page I should be able to easily login by fitting the center container correctly in mobile.
To-Do
When a user logs in they should be able to keep their session regardless of the page they visit.
Refer to this: https://flask.palletsprojects.com/en/1.1.x/quickstart/#sessions
Feature Request
As a developer, I'd like to call a function within my
/promote/<user_email>
API
Solution - Deliverable
Write a function in extensions.py that:
string
as input (assume email will always be valid)is_admin
attribute, of that user, to True
Helpful Notes
- Test function locally, call it directly above
render(dashboard.html)
in__init__.py#L73
- This function will be called via a
POST /promote/<user_email>
Refer to this resource!
https://flask.palletsprojects.com/en/1.1.x/quickstart/#routing
Is your feature request related to a problem? Please describe.
When I register for a new account, I would like for the site to make sure that there is protection against bots. We don't want spam in our databases.
Describe the solution you'd like
There is a python library for implementing ReCaptcha's - https://github.com/mardix/flask-recaptcha/
Describe alternatives you've considered
You can follow this tutorial - https://pusher.com/tutorials/google-recaptcha-flask
This may require for us to change how we implement forms.
Additional context
If possible, could you fix the gray bar above the navbar bug on the registration page?
Also, if you could make the registration page responsive that would be great as well.
IMPORTANT
You will have to re-download the .env file from slack, as it contains the new variable keys for the recaptcha.
Dashboard page, page redirected to after logging/registering
Something clean like this. Talk to the other people in the front end team to get the right colors they are working with.
To-Do
As a user, if I click remember me, I should be able to keep my session going even if I exit the browser.
The web portal should also have a way to prevent spam or bots from login in by using reCapcha
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.