Django Web Site to Manage Assignments
Title: Software Development Project.
Aim of Project: The aim of the project is to create a web application with database storage for me to store assignments working currently using python that will help to store personal information securely.
Objectives of Project:
Some of the major objectives of my projects are as follows:
- Research and analyze the existing software that provide similar features.
- Identify and evaluate the infrastructures that are used by those systems.
- Identify the technology, tools and resources used by the similar platforms.
- Identify the merits and demerits of the tools used.
- Conduct feasibility study and decide an appropriate Software Development Life Cycle to manage the project.
- Design ERDs and UML diagrams for the project implementation
- Use different techniques like questionnaires, survey, interview, etc. to collect datawhich is important to make SRS (System Requirement Specification) document to collect the fact on it.
- Critically analyze the research and findings.
- Identify methods, tools and techniques to mitigate the risks and protect against possible threats.
- Testing and debugging the final projects.
- Summarize and conclude the project.
Specification of My Product:
MoSCoW approach has been utilized in order to describe the specification of my project.here, the MoSCoW stands for Must, Should, Could and would, which assists us in developing crystal clear understanding of the customer’s requirements and their priority when managing a project. Some of the major requirement specification for my project according to MoSCow approach are discussed below;
Must have:
- Signup Form
- Login Form
- Logout
- Password Encryption
- Form Validation
- Form to store assignments in database
Should Have:
- Attractive, Responsive and User-friendly Interface
- Add, Update and Delete Personal Details with working assignment information
- Secure Database.
Could have;
- Personal blog and galleries.
- Other assignments information
- Course detail
Different type of users;
There will be two types of users in this application. They are
- Admin: Admin is the person who owns the software and has all the rights & controls over the system. He can create, update and delete users and other details.
- Users: user are those individuals who uses the software to store the working assignment. They will create account and login to store the details.
RESOURCES:
The hardware and software to complete the Project successfully:
Python: open source programming language
HTML: will be usedto create webpages
PyQt: PyQt most popular python bindings for the QT cross-platform GUI/XML/SQL C++ framework.
SQL: will be used for managing data in databases.
Adobe Photoshop:It is an image editing software developed by Adobe Systems which is used to design logo, resize and edit image, design website mock-ups.
Microsoft Word 2016: It is a word processor, Microsoft’s Property, which is used to write documentation for the project.
Web Browser (Mozilla Firefox, Google Chrome): Software used to display the webpages.
REFERENCES
Available Form:
https://en.wikipedia.org/wiki/SQL. [Accessed: 27/10/2017].
https://www.projectsmart.co.uk/moscow-method.php. [Accessed: 27/10/2017].
(June-27-2016).How to use Django’s Built-in Login System. Available from: https://simpleisbetterthancomplex.com/tutorial/2016/06/27/how-to-use-djangos-built- in-login-system.html. [Accessed: 27/10/2017].
(Dec-07-2016).Django Save Form Data to Database and Retrieve It. Available from: https://www.simplifiedpython.net/django-save-form-data-to-database/.
Solution
Web Application
Part 2: discuss the need to document it and the need to program and deliver it.
Documentation of a project is a very important part of the process of software creation, as it allows all the parts involved to be on the same page.
It is usually written by the development team, and this may sometimes lead to have it too scarce or missing. In order to take all the team (developers, commissioners, managers etc) it is important to have a good documentation and to keep it updated to the latest stage of the development.
Programmers will always see the development of code as their most important job, while commissioners/managers consider documentation as more important since it is the tool they use to understand what the product is doing and the current stage of development. A good final documentation is also useful to the final users to learn to use the tool
Another aspect to keep in mind while developing code is that the specifics can change due to requests of the commissioners or due to technical limitation/issues coming up at any development stage, and the documentation has to be updated accordingly.
The Code
The project has been implemented in Python and HTML, using django to manage the communication between frontend and back end. As of today, we have a webpage which allows the user to login/register and upload files on their personal space.
Figure 1: Admin login page
As a first thing, we set up an administrator account for the website. Page in Figure 1 is presented to the admin and they can log in with their credentials.
As the admin logs in, they gets to a page from where they can manage users registered to the site, add/cancel users and organize them into groups
administration page
In the example, a simple application to write messages/question has been implemented to test the functionality of this first part.
usersmanagement page
In Figure 3, we see an example of user management: this page stores personal information of an user and allows to change their permission and to add them to groups. It is important to notice that as the password of the user is encrypted and can be read by anyone, not even the administrator (see Figure 4).
Figure 4: Hiding the password
As we visit the site, a login form is presented. It asks for a username and a password, and allows to register a new account. Django provides the base code to perform the registration and authentication, and as a new user is inserted checks if it is already in the database
Figure 5: signup form
The user logs in it their reserved area, from which they can see the files they have already uploaded and upload more. To upload the file, Django manages the local file system navigation to retrieve the desired file which is added to the site database.
Figure 6: Student personal page
Figure 7: Form to upload a file
Then, the user can log out from their account and go back to the main login page.