Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructure abe into modules #66

Open
newsch opened this issue Jul 18, 2017 · 2 comments
Open

Restructure abe into modules #66

newsch opened this issue Jul 18, 2017 · 2 comments
Assignees
Labels
internal Only affects ABE developers

Comments

@newsch
Copy link
Collaborator

newsch commented Jul 18, 2017

In the interest of addressing some issues/ideas that have risen up in the past couple weeks, mainly:

  • structuring the project in an organized and logical way to encourage contributions and development from Olin students with a variety of programming/Python experience
  • implementing unit tests for more of the project (started with Get testing framework in place #62)
  • using the same database connection across resource models
  • implementing sockets for event creation/deletion for f-board integration
  • implementing Sphinx and Read the Docs for documentation similar to the Olin API
  • the ability to add additional features/endpoints and new mongoengine document models to ABE, like /files/ as mentioned in Add ability to attach files to events #52

It seems that we've reached the comfortable limit of a flat project structure - I recently rearranged the project files in #44 based on the guidelines from The Hitchhiker's Guide to Python. Looking at the Olin API's folder structure, I think that splitting up document_models.py and resource_models.py would be a nice first step. After that helpers.py needs to be pulled apart and reorganized - I'm still not sure what the best way to structure it would be.

Some resources to help with Flask, sockets, and celery along the way:

I'm proposing a project structure similar to this:

.
├── abe
│   ├── __init__.py
│   ├── app.py
│   ├── database
│   │   ├── __init__.py
│   │   ├── connection.py
│   │   ├── mongo_config_sample.py
│   │   └── mongo_config.py
│   ├── resources
│   │   ├── __init__.py
│   │   ├── event_model.py
│   │   └── label_model.py
│   ├── helpers
│   │   ├── __init__.py
│   │   ├── postdeploy.py
│   │   ├── pr-predestroy.py
│   │   ├── sample_data.py
│   │   ├── mongo_helpers.py
│   │   └── ical_helpers.py
│   ├── documents
│   │   ├── __init__.py
│   │   ├── event_document.py
│   │   └── label_document.py
│   └── templates
│       ├── add_event.html
│       ├── add_label.html
│       └── splash.html
└── tests
│   ├── __init__.py
│   ├── context.py
│   └── test.py
├── docs
│   └── [documentation stuff]
├── app.json
├── .gitignore
├── LICENSE
├── Procfile
├── README.md
├── requirements.txt
├── run.py
└── runtime.txt
@newsch newsch added the enhancement New and enhanced functional label Jul 18, 2017
@newsch newsch added this to the Shipping v1.0 milestone Jul 18, 2017
@newsch newsch self-assigned this Jul 18, 2017
@Elepert
Copy link
Contributor

Elepert commented Jul 20, 2017

Breaking up helpers.py into multiple helper functions is taken care of with #71
Greater restructuring with implementing document and resource model folders was taken care of with #68

@songbird175 songbird175 self-assigned this Apr 12, 2018
@newsch newsch modified the milestones: Shipping v1.0, Pre-Launch Sprint 1 Apr 13, 2018
@newsch
Copy link
Collaborator Author

newsch commented Apr 16, 2018

As part of this, @songbird175 and I are working on a system diagram for ABE with #144.

@newsch newsch removed this from the Pre-Launch Sprint 1 milestone Apr 19, 2018
@osteele osteele added internal Only affects ABE developers and removed enhancement New and enhanced functional labels Apr 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Only affects ABE developers
Projects
None yet
Development

No branches or pull requests

4 participants