shpeucf / shpeucfapp Goto Github PK
View Code? Open in Web Editor NEWSHPE UCF Mobile Application
Home Page: https://tech.shpeucf.com
License: MIT License
SHPE UCF Mobile Application
Home Page: https://tech.shpeucf.com
License: MIT License
When user closes the app, the Redux state also goes aways, however, there's a state to be saved locally such as loggedIn to allow fast app start up when users opens it again so there's no delay on checking whether or not there's a user loggedIn with Firebase. This can be enable by saving a small amount of data on the device's memory using either Firebase Persistence (LOCAL) or Redux Persist (preferably).
As of now, the app is showing a loading a screen while user state is verified with Firebase, when the app receives a response from Firebase user state, it takes user to main screen (if logged in) or to log in screen (if logged out)
a6a4d23 loading component temp solution can also be replaced with Splash screen while app gets response from Firebase
Configure the package to push icons into android build
Testing out the issue maker.
I'd imagine we'd want a way to initiate a chat once we land on a person's profile. Maybe we need a search feature to find people next.
Election system must be modular enough where different positions and members can be added and removed by eBoard.
It should record what everyone's vote is(as opposed to being completely anonymous and this is because you need to know to be able to edit your vote if you change your mind)
Must be able to vote, edit vote.
People should apply for a position and then get accepted by the eBoard. This is the easiest way to link people.
Allow president to close or open votes during an election
Allow president to transition voted eboard into their respective positions on the app
In the event of a tie, allow president to choose the winner of the position
Add more alerts to verify actions such voting and setting the order of positions in the back end
Take away apply button on election screen once or modify button once someone has applied
Finish handling some of the election stats on the election back-end screen
Ask and reverify if the president wants the election to be closed and finished
Instead of using lastpass, the E-Board could use the shpeapp as a password manager for all shpe-related accounts. (Note: Some passwords should only be seen by certain positions)
While looking into how to do this I cam across a lot of information. I'm going to be posting links here that need to be read before tackling this issue:
Dashboard must have useful features such as seeing latest announcement and seeing general SHPE News. Its basis should be that of a welcoming interface where users can see how they can be more active in SHPE and have direct access to the resources provided.
Display committees of SHPE. (How to get more involved...)
Not only will this list the committees SHPE currently has, but also link to these committees within the app. For that reason, it should implemented in a List, so that we don't have to worry about future committees being added. Will be present in the app once the committee system has been implemented.
Inform members of resume upload.
Improve styling.
This will be implemented as part of the AppStyling branch, currently being worked on by @csepulveda7.
Add upcoming events at the top of the dashboard.
This will be dynamic since events will continuously be added/removed/edited. Events should be neatly placed so that a user can see some of the most recent events.
Display top people in the leaderboard.
Should also be dynamic and link to the Leaderboard screen in case they want to see their position on the Leaderboard relative to other members' points.
Update (3/22/19): Although it correcly goes to the Leaderboard screen, it doesn't go back to Dashboard upon return (goes back to the More screen), something that should be fixed on Leaderboard.
Add button that links to Slack.
It should prompt the user to open the link in the Slack app.
Update (3/22/19): Right now it links to the workspace on the Slack website. The goal is to have it open automatically if the user has the Slack app. Otherwise, it should open on the web browser as it does now.
Use/explore https://www.npmjs.com/package/react-native-beacons-manager to implement event check in based on proximity to beacon/location of meeting.
We'll also use GeoFencing option for outdoor events, but inside buildings beacons are the best bet for now, we can acquire a beacon for the chapter with both iBeacon and Eddystone capabilties or implement it with just software and someone's phone/Bluetooth device will have to play as beacon during events. We'll leave that last part up for discussion after implementation.
The bottom navigation panel doesn't revert back to initial state. This is undesirable because each of the four primary tabs retains it's previous state even after a different tab has been chosen. This should be modified so that when someone revisits a previously accessed tab, it will have reverted back to its first screen.
Build general profile page for users with data such, first name, last name, email, major, membership, etc.
Ability to register and log in using firebase as auth
Events System should
While check-in is active then a modal should show the check in code of the event. The board member can then show this to everyone and have them check in.
Email verification link does not work on Office 365 which is what knights email uses.
eBoard should be able to search for people to edit their accounts.
Members must be able to apply to committees.
They would then get accepted or rejected by the person in charge of the committee.
This would award them points if they get accepted. The amount should be editable by the eBoard.
This should also add some privilege to them so they can see things from that committee such as announcements and such
Store users data in Firebase
-Defined set of colors that must be used, their codes and work more on the design on the app
So far the Linkedin and Github buttons on the profile page only link to their home pages.
This should be modified so that pressing one of the buttons links to the user's own page.
We would need to modify the 'Edit Profile' screen to ask the user for their page links, and if none or just one of the links are provided, the profile screen should adapt accordingly.
Implement a newsfeed or card view in the Home Screen to post content
Need to finish this menu either with a stack navigation or drawer navigation for the current pages in there.
They should be able to see it and also email themselves a .csv file with all the user's info.
Test apps using emulators/simulator/actual devices for both platforms iOS & Android.
Stack navigation headers look different from main screen header, this is due to main screen header being a component and the header from stack nav being generated by the React-Navigation package. We might have to check platform and style iOS and android individually or simply move away from Stack Navigation and replace with drawer. iOS looks okay for now after grindlock's fixes but android is not.
There should be a form that allows users to see where all of their points are coming from. This form should have it organized neatly and possibly group it by overarching titles such as, Events, Committees, Volunteer events, GBM, ... , ect
Then they should be able to click one of those titles and the screen changes to show the breakdown of that. If they click events, a list of all event they've attended should display with how many points they got from each one.
On user account creation/login we must populate profile with user info such as Name, Email, College, Major, Year, etc using data stored on Firebase
Insert logic using the Platform API to differentiate design based on platform so app looks more specifically design for each platform.
Let's keep this issue for later but it's important to think about those design decision from now and whenever possible apply them, else, we'll refactor code later to improve design
Leaderboard doesn't render after returning from OtherProfile for some reason. Ideally we should be able to return back to leaderboard and still see everyone's information.
Committee System features:
Build registration form so users can sign up and submit mandatory data
The text in the TextInput boxes is not allowing more characters than the placeholder has for each individual box. The text gets truncated when it reaches the length of the placeholder.
Not sure why but registration does not add a user to the database. It does create their Firebase account though.
Edit: The database returns an error when you try to set a field with an undefined or empty variable.
Move current event check in feature to be present on each event in the calendar.
We mus decide whether or not to show the "Check In" button for all events:
Create a Date Picker to handle Date Formats
The only place i've noticed this is in Sign In. We can't see what we're typing when we're typing
TypeError: Requested keys of a value that is not an object in event details
Must find more info
We need a list, most likely a JSON file with the list of Colleges and Majors:
Also for all majors so users select from a predefined list rather than typing it and generating different formats for same value/typos such as:
aerospace engineering
Aerospace Engineering
Aerospace engineering
aerospace Engineering and so on.
We can get the full list here: http://catalog.ucf.edu/programs/degree-programs
Add all resources links to this screen with touchable items that will open on a Web View such as Facebook Groups, Instagram Account, and other websites.
Sometimes More screen content will disappear when you navigate away from it.
This scene must:
The functionality must be:
Have ability to create new statistics.
The board should be able to go the Statistics screen and create new statistics by selecting the categories they want to filter the members by (i.e. major, points, class standing...). To do this, we have to work with the database to search through the data selected by the user and "filter" through the members found on Firebase. Once this is achieved, we should save the data in the database for future retrieval.
View all created statistics.
Retrieve and render the statistics created and display them in a simple table. It can be later modified to represent the data visually.
Export data created onto phone or email.
This will be done in case the user(s) want to access them in a 3rd-party program such as Google Sheets or Microsoft Excel.
Option to delete existing statistics.
On the same ViewStatistics screen, the user should be able to also delete the selected table or edit it. For removing, the data should also be removed from Firebase for it to be permanently deleted.
Option to edit existing statistics.
Harder to implement. To edit the statistics, a button will take you back to the CreateStatisticsForm, but with all previously selected options/categories to easily edit the data... At that point, however, it may be easier to create a new statistic.
Create statistics for events.
With the same standpoint as user statistics, a new form should be created (or edit the existing form) to create statistics for events to view information such as the most attended events, it correlation with points, and other relevant information.
Modify stylesheet to minimize code repetition.
Fix deletion of pickers once selection has been made.
Add corresponding rendering of array depending on subcategories, etc.
Add Create Form
button inside the form to actually create and save the data that will be later displayed.
Modify checkboxes to fill out space and not waste an unnecessary amount of the user's screen.
Dynamically render checkboxes based on the size of the value
array.
Create statistics form and corresponding json file for categories.
Dynamically render components depending on selected category.
Remove specific pickers based on selection, not just last one.
Create statistics screen to create/view a graph.
Added back arrow buttons to go back to the previous screen.
PostDetail component is loaded with cards, it's must be broken down into other components. One way is:
Picker should be easy to use which means all you need to do is feed it an array or object of data and it will display the data.
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.