Meeting
To-do list
Maintainability Issues
- Change project name
- Add .gitignore to exclude unnecessary files
- Standardize file names
- Remove uncessary files
- Use .htaccess to restrict folder access
- Change all absolute path to relative ones
Design Issues
- Utilize templates for header and footer
- Welcome page
- For logged-in users: user dashboard
- For other users: intro to project + log in form
- User functionality
- User registration
- Use user-specified username as the unique id, instead of email address
- Detect institution based on email address
- Certification upload?
- User log in
- Use cookies to record user’s log-in state
- User dashboard
- Search, upload, and identify buttons
- Manage uploaded genomes
- Modify profile (name, email, institution, social media, etc.)
- User profile
- Improve profile page URL
Display user informationList genomes uploaded- Show recent activities
- User related buttons in header (profile, settings, logout, etc.)
- Password recovery via email
- User registration
- Genome functionality
- Genome profile
- …
- LINgroup profile
- …
- Submission
- Validate genome sequence
- Implement queue to manage user uploads
- Use AJAX to fetch upload status
- …
- Search
- Improve search wizard
- Use pagination for search result
- …
- Identification
- …
- Genome profile
Security issues
- User authentication
- Verify the identity of new users
- Validate email address
- Use salted hashing to store password
- SQL injection and remote execution
- Check all user input for possible injection
- Access permission control
- Do not render pages unless the user has permission
- HTTPS certification
Performance Issues
- Optimize
Description
table- Create N-N table to represent relationships
- Optimize SQL statement
- Limit the number of rows returned
- Prevent running queries in loops
- Cache
- Frontend (JS localstorage)
- Constants
- Search result
- Backend (RAM)
- Constants
- Recently searched query
- Backend (FS)
- Recently searched query
- Frequently used data
- Frontend (JS localstorage)
Written on February 14, 2018