2

I'm working on creating a school website where teachers can track student performance on various benchmarks during the semester, then submit the results at the end for department-wide evaluation. My plan is to have a form that the teachers progressively complete over the course of the year, the current status of which will persist in a database that will also store the final submissions.

My question is, what is the right way to do this? I have a moderate working knowledge of HTML, client-side scripting, server-side scripting (language of choice being Python) and databases, and I could certainly figure out a way to hack this together, but if there are some common patterns for this kind of thing I'd like to know. In particular, I'd appreciate if someone could describe the best ways to:

  1. Implement user logins/accounts
  2. Allow a user to save progress on a form

2 Answers 2

1

I'm not a python expert, but...
Your post doesn't tell us if you already had a look at frameworks.
I heard that Django is just fine and follows the "batteries included" strategy. I encourage you to have a close look at its authentication module. That might answer your first question.

Secondly, storing data completed over time in a database is in my opinion fine. It completely depends on your modelling skills. If you design a sophisticated and flexible model for your data with database queries in mind, you should experience no problems. But it is recommended to allocate more time for that step in the application development.

Sign up to request clarification or add additional context in comments.

Comments

0

...the teachers progressively complete over the course of the year

If this is the case, just store the state of the form in the database, most likely with a column for each value in the form. This is not much different than letting the user edit their profile or something similar - it's basically just a form that they can come back to any time and make changes to, with the values populated in the DB and perhaps manipulated by your application.

If you had said "the teachers progressively complete over the course of the day", I would suggest that you do the same, although storing the values in the user's session or cookies would be another way to accomplish this. In fact, this is probably the only way you can do it if the user does not have an registered account. Just be aware that sessions and cookies can be deleted or expire (which doesn't sound like a good idea for this particular case).

Assign the user id to one column, the values in the others. If you want, you can append the table rather than overwrite the values of the table row(s), so you can keep track of the revision history and know what changes were made and when.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.