3. Developer Documentation¶
- 3.1. System Design
- 3.2. UML Diagrams
- 3.3. Box Management
- 3.4. Deployment Documentation
- 3.5. Django and Nginx
- 3.6. JavaScript And JQuery
- 3.7. Django Extensions
- 3.8. Outstanding Tasks
- 3.8.1. Milestone Descriptions
- 3.8.2. Task Tables by Milestone
- 3.8.3. Task Descriptions by Issue
- I-227 Checkout a pallet of boxes (future)
- I-226 Generate Location Table from Row, Bin, and Tier
- I-225 Reorganize menu picks by most frequently used
- I-224 Location Table - build ACID screens
- I-223 Change a box’s quantity and box type
- I-222 Let’s Encrypt X509 certificate
- I-221 Setup production with “dummy” data initially
- I-220 Test production for security
- I-219 Test backup
- I-218 Arrange backup of data and schema in database.
- I-217 Script production fallback
- I-216 Get formal permission to use WARM logo
- I-215 Determine source for X509 certificates
- I-214 Script production (docker, VM, cloud provider)…
- I-213 Ensure system can be used from a smart phone/tablet
- I-212 Cloud VM
- I-211 Eliminate the standalone QR print program
- I-210 Admin Permissions
- I-209 Staff Permissions - can:
- I-208 Volunteer Permissions - can:
- I-207 Implement permission levels though out the app
- I-206 View/search the Product Examples table
- I-205 Setup a docker container for Nginx
- I-204 Setup a docker container for Django and uWSGI
- I-203 Setup docker container with PostgreSQL configuration
- I-202 Implement Manual Pallet Management
- I-198 Build Pallet Screen UI Change w/ no previous pallets
- I-192 Build Pallet Screen. Save more in Pallet Box record
- I-190 Build Pallet: set pallet ID in profile
- I-189 Ensure that the “Evans” box type is default
- I-178 Manual box checkin needs to be streamlined
- I-176 Change user password
- I-175 Add/Change/Delete a User
- I-174 Delete a pallet
- I-173 Build Pallet needs to set pallet status
- I-167 Results of Mike R.’s original testing
- I-161 Move Pallet
- I-145 Document clearing start/end exp. mo in Build Pallet
- I-138 Enhance README.md with a more detailed purpose.
- I-115 Rework the API of theQR label print program
- I-89 Improve README.md etc. for new developers
- I-88 Make a docker image of project to run locally
- I-54 Product Examples Table - Build ACID screens
- I-42 Box Type Table - Build ACID screens
- I-41 Product Table - build ACID screens
- I-40 Product Category Table - build ACID screens
3.9. Getting Started¶
This project is based on using PyCharm as the IDE, Django as the web framework, and PostgreSQL as the database backend for development.
3.9.1. Contributing to this Project¶
In order for you to contribute to this project, you will need to spend some time setting up your environment.
PyCharm¶
PyCharm is available from JetBrains (http://www.jetbrains.com) in two editions - Professional($) and Community(Free). This project only requires the Community edition, althogh it will work with the Professional edition if you are lucky enough to have it.
GitHub¶
This project requires you to have a GitHub account.
Django¶
The Django web framework code will be downloaded as part of the project code.
3.9.2. Starting Point¶
Please start with the Git Guidelines.
3.10. General Developer Documentation¶
Helpful Developer Resources are available.
3.11. Django Documentation¶
Documentation about Django, including documentation specific to this project.
3.12. PostgreSQL Documentation¶
Documentation about PostgreSQL that is specific to this project.
A graph of the database tables and their relationships is shown here.
A bigger, sharper image of this graph can be downloaded from here.
3.13. Git Documentation¶
Documentation about git (the source code control software) that is specific to this project.
3.14. Internal Documentation¶
Javascript and JQuery information specific to this project.
How information about boxes and their workflows.
3.15. Deployment Documentation¶
This system is planned to be deployed in a “cloud” platform. See Deployment Documentation for both an overview of the deployment plans and details as they are implemented.