PassionProj.md
· 5.2 KiB · Markdown
Orginalformat
# Outline line of Tasks
ZCW Passion Project methodology for PassionProj Week.
Each of these phases are designed to move the project from the One-Pager stage to *something* working by the end of the week.
## Documentation
The one-pager, the UX/UI mocks, and the data model documents should be complete.
Now, **What is your `Entity-1`??**
In the Piro360 example, it is `Piro`
## Method
Perform each of these phases in order. [Java](#java) and [Data](#data)
## Create Repo for Project
- add all your docs in a `doc/` folder
- draft initial README.md with summarized paragraph of the one-pager
- create a `src/` folder for all your source code
## <a name="java"></a>Java
### REST Server (initial)
- Build a small, single entity (`Entity-1`) rest server.
- Load some test data into the db behind the REST server with a SQL file for Entity-1.
- Prove data is loaded with SQL
- Prove data is loaded with a tool like Postman
- Add a User entity with a one-to-many relationship to Entity-1
- Load some User test data into the db behind the REST server with a SQL file.
- Prove data is loaded with SQL using an INNER join.
- Prove data is loaded with a tool like Postman
### VanillaJS Interface
- display on a single page html, List-Of Entity-1s
- add links to Detail-Of Enitity-1s
- build a Detail-Of page for Entity-1
- add a non-working button for `add` and `edit` and `delete` of Entity-1
- style the VanillaJS UI with bootstrap or something
- can use Koley-css
- add a POST/FORM which adds entity-1s from the UI frontend
- add new page for adding an Entity-1
- add JS for same
- connect to REST backend
- prove it works with postman and the new page
- what will you do about the User foreign-key relationship?
### Display User-restricted Entity-1s
- add ability to set User-1 on a List-Of page
- restrict display of List-Of Entity-1s by a User
- modify add-entity-1 page to handle the User foreign-key relationships
- style the pages to be consistent with each other
### Business Logic
- what business logic addition can you add to your REST server?
- _Example:_ `piro360` is the idea of tags
- display `Piro`s by `User` and by `Tag`
- adding and removing of tags from a `Piro`
### Add ReactJS UI
- add a reactjs interface that mimics your VanillaJS interface
- style it consistently
- what new spiffy items can you now do that were not really possible with vanillaJS?
### Create an admin UI
- create a CRUD admin UI for your Entities
- make sure only Users with Admin privileges can edit the database.
### Add JWT security to the project
- you may, finally, at this point, need a Login page
- create a session-based security model
- prove it works with Postman
- and maybe a Register page. (maybe)
- which brings up a Profile page
- how can you prove that your login page and its session security works?
## <a name="data"></a>Data
This is a comprehensive project plan outline for your data engineering pipeline.
### Data Research & Requirements Phase
- Define project objectives and success criteria
- Identify potential data sources
- Document data requirements (volume, velocity, variety)
- Assess data quality needs
- Determine necessary data formats and schemas
- Create data dictionary template
### Data Collection & Storage Setup
- Set up development environment
- Establish data storage infrastructure
- Create data ingestion pipelines
- Implement data validation checks
- Document data collection procedures
- Set up version control for code and notebooks
### Exploratory Data Analysis (EDA) Phase
- Create initial Jupyter notebook
- Perform basic statistical analysis
- Check data distributions and patterns
- Identify outliers and anomalies
- Handle missing values
- Document initial findings
- Create data cleaning procedures
### Advanced Analytics Phase
- Define key metrics and KPIs
- Develop statistical models
- Implement feature engineering
- Create data transformation pipelines
- Validate analytical results
- Document analytical methodologies
- Optimize analysis procedures
### Visualization Development
- Select appropriate visualization libraries
- Design initial visualization mockups
- Create core visualizations
- Implement interactive features
- Ensure responsive design
- Test visualization performance
- Document visualization components
### Dashboard Creation
- Design dashboard layout
- Implement dashboard components
- Create dashboard interactivity
- Add filtering capabilities
- Implement data refresh mechanisms
- Ensure cross-browser compatibility
- Document dashboard functionality
### Flask Application Development
- Set up Flask project structure
- Create necessary routes and endpoints
- Implement authentication (if required)
- Connect dashboard components
- Set up error handling
- Implement logging
- Create API documentation
### (Extra Credit) Testing & Deployment
- Develop unit tests
- Perform integration testing
- Conduct user acceptance testing
- Set up CI/CD pipeline
- Create deployment documentation
- Plan scaling strategy
- Document maintenance procedures
_this phase is woth 1,000,000 extra credit points._
Outline line of Tasks
ZCW Passion Project methodology for PassionProj Week.
Each of these phases are designed to move the project from the One-Pager stage to something working by the end of the week.
Documentation
The one-pager, the UX/UI mocks, and the data model documents should be complete.
Now, What is your Entity-1
??
In the Piro360 example, it is Piro
Method
Perform each of these phases in order. Java and Data
Create Repo for Project
- add all your docs in a
doc/
folder - draft initial README.md with summarized paragraph of the one-pager
- create a
src/
folder for all your source code
Java
REST Server (initial)
- Build a small, single entity (
Entity-1
) rest server.- Load some test data into the db behind the REST server with a SQL file for Entity-1.
- Prove data is loaded with SQL
- Prove data is loaded with a tool like Postman
- Add a User entity with a one-to-many relationship to Entity-1
- Load some User test data into the db behind the REST server with a SQL file.
- Prove data is loaded with SQL using an INNER join.
- Prove data is loaded with a tool like Postman
VanillaJS Interface
- display on a single page html, List-Of Entity-1s
- add links to Detail-Of Enitity-1s
- build a Detail-Of page for Entity-1
- add a non-working button for
add
andedit
anddelete
of Entity-1 - style the VanillaJS UI with bootstrap or something
- can use Koley-css
- add a POST/FORM which adds entity-1s from the UI frontend
- add new page for adding an Entity-1
- add JS for same
- connect to REST backend
- prove it works with postman and the new page
- what will you do about the User foreign-key relationship?
Display User-restricted Entity-1s
- add ability to set User-1 on a List-Of page
- restrict display of List-Of Entity-1s by a User
- modify add-entity-1 page to handle the User foreign-key relationships
- style the pages to be consistent with each other
Business Logic
- what business logic addition can you add to your REST server?
- Example:
piro360
is the idea of tags- display
Piro
s byUser
and byTag
- adding and removing of tags from a
Piro
- display
Add ReactJS UI
- add a reactjs interface that mimics your VanillaJS interface
- style it consistently
- what new spiffy items can you now do that were not really possible with vanillaJS?
Create an admin UI
- create a CRUD admin UI for your Entities
- make sure only Users with Admin privileges can edit the database.
Add JWT security to the project
- you may, finally, at this point, need a Login page
- create a session-based security model
- prove it works with Postman
- and maybe a Register page. (maybe)
- which brings up a Profile page
- how can you prove that your login page and its session security works?
Data
This is a comprehensive project plan outline for your data engineering pipeline.
Data Research & Requirements Phase
- Define project objectives and success criteria
- Identify potential data sources
- Document data requirements (volume, velocity, variety)
- Assess data quality needs
- Determine necessary data formats and schemas
- Create data dictionary template
Data Collection & Storage Setup
- Set up development environment
- Establish data storage infrastructure
- Create data ingestion pipelines
- Implement data validation checks
- Document data collection procedures
- Set up version control for code and notebooks
Exploratory Data Analysis (EDA) Phase
- Create initial Jupyter notebook
- Perform basic statistical analysis
- Check data distributions and patterns
- Identify outliers and anomalies
- Handle missing values
- Document initial findings
- Create data cleaning procedures
Advanced Analytics Phase
- Define key metrics and KPIs
- Develop statistical models
- Implement feature engineering
- Create data transformation pipelines
- Validate analytical results
- Document analytical methodologies
- Optimize analysis procedures
Visualization Development
- Select appropriate visualization libraries
- Design initial visualization mockups
- Create core visualizations
- Implement interactive features
- Ensure responsive design
- Test visualization performance
- Document visualization components
Dashboard Creation
- Design dashboard layout
- Implement dashboard components
- Create dashboard interactivity
- Add filtering capabilities
- Implement data refresh mechanisms
- Ensure cross-browser compatibility
- Document dashboard functionality
Flask Application Development
- Set up Flask project structure
- Create necessary routes and endpoints
- Implement authentication (if required)
- Connect dashboard components
- Set up error handling
- Implement logging
- Create API documentation
(Extra Credit) Testing & Deployment
- Develop unit tests
- Perform integration testing
- Conduct user acceptance testing
- Set up CI/CD pipeline
- Create deployment documentation
- Plan scaling strategy
- Document maintenance procedures
this phase is woth 1,000,000 extra credit points.