0% found this document useful (0 votes)
37 views56 pages

Finalreport

Uploaded by

mishrashlok8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views56 pages

Finalreport

Uploaded by

mishrashlok8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 56

Notes Sharing System

Project Report On

Note Sharing System


Submitted as partial fulfillment for the award of degree of

MASTER OF COMPUTER APPLICATIONS

SESSION: 2023-24

BY
Shlok Mishra (2200460140048)
Aparna Tiwari (2200460140013)

UNDER THE SUPERVISION OF


DR. Swati Saxena

MAHARANA PRATAP ENGINEERING COLLGE, KANPUR

Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY, LUCKNOW (U.P)

I
Notes Sharing System

CERTIFICATE
This is to certify that the project report entitled Notes Sharing System submitted to Department
of Computer Applications, MAHARANA PRATAP ENGINEERING COLLEGE, Kanpur, in
partial fulfillment of the required for the award of degree of MASTER OF COMPUTER
APPLICATIONS (MCA) is an authenticate and an original work carried out by
Aparna Tiwari (2200460140013) and Shlok Mishra (2200460140048) under my guidance.
The matter given in this project is genuine work done by student and has not been submitted
whether to this University or to any other University / Institution for the fulfillment of the
requirements of any course of study.

Signature of Student Signature of Guide

Date: Date:

Aparna Tiwari (2200460140013 Supervisor


Shlok Mishra (2200460140048) Dr. Swati Saxena
(Assistant Professor)

II
Notes Sharing System

ACKNOWLEDGEMENT

This Major Project would not have been possible without the help of many people. Hereafter, I
would like to thank them for their help, support, and advice they have given me while working
on the project. First, I would like to thank my Major Project guide, Prof. Dr. Swati Saxena for
her guidance, help, and the many discussion sessions that gave me courage and enthusiasm to
design and build this application. I thank all the faculties of Department of Computer
Applications for their support and guidance. I extend my gratitude to HOD of department Mr.
Mayank Shukla.

III
Notes Sharing System

ABSTRACT

Online note sharing is the project used for sharing notes using website. Notes that the user wants
for the particular subject can be found in the website. The user need to sign up and then, they can
log into system. They will get their own dashboard where they can see the number of notes for
the particular faculty. After that they can download it and read the notes. They can even upload
the notes if they have some. They can even edit the profile like name, profile, change password.
Eventually, in admin side they can see all the users who are using it. Admin has the authority to
delete the users too. If the user had uploaded the notes, then admin check the note and is it is
usable then they will approve it and all the other user will get the note according to the faculty.

IV
Notes Sharing System

Table of Content

TITLE PAGE………………………………………………………………………………………………I
CERTIFICATE……………………………………………………………………………………………II
ACKNOWLEDGEMENT………………………………………………………………………………...III
ABSTRACT…………………………………….……………………………………………..………….IV
TABLE OF CONTECT…………………………….……………………………………………………..V
LIST OF FIGURES……………………………………………………………………………………....VII
1. INTRODUCTION………………………………………………………………………………………1
1.1. BREIF OVERVIEW OF WORK……………...……………………………………………………1
1.2. OBJECTIVES……………………………………………………………………………………….1
1.3. SCOPE………………………………………………………………………………………………2
2. SYSTEM ANALYSIS……………………………………………………………………………….….3
2.1. IDENTIFICAITONS OF NEED……………………………………………………………………3
2.2. PRELIMINARY INVESTIGATION……………………………………………………………….3
2.3. LITERATURE REVIEW…………………………………………………………………………...4
2.4. PROJECT FEASIBILITY STUDY…………………………………………………………………5
2.5. PROJECT PLANNING……………………………………………………………………………..6
2.6. SOFTWARE REQUIREMENT SPECIFICATIONS………………………………………………7
2.7. SOFTWARE ENGINEERING PARADIGM APPLIED …………………………………………11
2.8. DATA MODELS…………………………………………………………………………………...12
2.8.1. DATA FLOW DIAGRAMS (DFD)………………………………………………………...12
2.8.2. ENTITY-RELATIONSHIP DIAGRAMS (ERD)…………………………………………..13
2.8.3. USE-CASE DIAGRAM………………………………………...…………………………..14
2.8.4. CLASS DIAGRAM…………………………………………………………………………16
2.8.5. SEQUENCE DIAGRAM……………………………………………………………………17
3. IMPLEMENTATION TECHNOLOGY………………………………………………………………..19
3.1. PROGRAMMING LANGUAGE………………………………………………………………….19
3.2. DEVELOPING ENVIRONMENT……………………………………...…………………………21
4. SYSTEM DESIGN……………………………………………………………………………………..22
4.1. MODULE DETAILS……………………………………………………………………………….22
4.2. DATA INTEGRITY AND CONSTRAINTS………………………………………………………23
4.3. DATA DESIGN…………………………………………………………………………………….24
4.4. DATABASE SECURITY DESIGN CONSTRAINTS……………………………………………..26
4.5. USER INTERFACE DESIGN……………………………..……………………………………….27

V
Notes Sharing System

4.6. TEST CASE DESIGN……………………………………………………...………………………38


5. CODING………………………………………………………………………………………………..40
6. TESTING……………………………………………………………………………………………….43
6.1. TESTING TECHNIQUES AND STRATEGIES………………………………………………….43
6.2. TEST PLAN USED ……………………………………………………………………………….44
6.3. TEST REPORT FOR TEST CASES………………………………………………………………45
7. FUTURE SCOPE……………………………………………………………………………………….46
8. CONCLUSION…………………………………………………………………………………………47
9. BIBLIOGRAPHY………………………………………………………………………………………48

VI
Notes Sharing System

List of Figures

1. DATA FLOW DIAGRAM………………….………………….………………………………12


2. ENTITY RELATIONSHIP DIAGRAM ………………………………………………………13
3. USE-CASE DIAGRAM (ADMIN)…………………………………………………………….14
4. USE-CASE DIAGRAM (USER)………………………………………………………...….…15
5. CLASS DIAGRAM ………….….………………………………………………………….…16
6. SEQUENCE DIAGRAM (ADMIN)…….…………………………………………………….17
7. SEQUENCE DIAGRAM (USER)…….………………………………………………………18
8. INDEX PAGE……………………...…….……………………………………………………27
9. ABOUT US PAGE…………………...….……………………………………………………28
10. CONTACT US PAGE………………….……………………………………………………29
11. SIGN UP PAGE………………….…….………………………………………………….…30
12. LOGIN PAGE…………………….…….……………………………………………………30
13. ADMIN LOGIN PAGE…………………...………………………………………………….31
14. ADMIN HOME PAGE…………………...…………………….……………………………32
15. PENDING NOTES PAGE………………...…………………………………………………32
16. ACCEPTED NOTES PAGE………………...…….…………………………………………33
17. REJECTED NOTES PAGE……….….…...…………………………………………………33
18. VIEW ALL NOTES PAGE…….….……...…………………………………………………34
19. VIEW USERS PAGE………....……...………...……………………………………………34
20. USER HOME PAGE………………………………………………………………………...35
21. EDIT PROFILE PAGE………………...…….……………………………………………....35
22. CHANGE PASSWORD PAGE………………...……………………………………………36
23. UPLOAD NOTES PAGE……………….……...……………………………………………36
24. VIEW MY NOTES PAGE……………...……...……………………………………………37
25. VIEW ALL NOTES (ACCEPTED ONLY) PAGE…………………………………………37
26. INDEX PAGE CODING……………………………………………………………………40
27. VIEWS.PY CODING……………………………………………………………………….41
28. MANAGE.PY CODING……………………………………………………………………41
29. USER HOMEE PAGE CODING…………………………………………...………………42

VII
Notes Sharing System

30. ADMIN HOME PAGE CODING………………………………………………………..…42

VIII
Notes Sharing System

CHAPTER-1. INTRODUCTION

1.1 Brief Overview of Work

Notes Sharing System is a web based notes sharing and management system which helps
students and teachers to share their notes online effectively. It reduces the wasting of time in
manually distributing notes to each individual. It greatly overcomes the lack of availability and
converts the manual old school paperwork to a fully automated and managed online system.
Notes Sharing System allows it's users to securely register and log in to their individual accounts
and create, read, update, delete notes according to their needs. It provides notes to everyone in a
very secure manner. Multiple users can work in this system at the same time under centralized
supervision by administrator. It is a very useful notes management system for Colleges, Schools
and other Institutes to manage and share their notes in a secure, efficient and effective manner.

1.2 Objective

The objectives of the system are-


 To reduce manual paperwork.
 Reduced sharing and distribution time.
 Increased reliability.
 Increased operational efficiency.
 Data security.
This Notes Sharing System can be readily used by non-programming personal avoiding
human handled chance of error. This project is used by Three types of users
 Students.
 Teachers
 Administrators
Students and Teachers can create their accounts and start viewing notes shared by other users as
well as upload their own notes. Administrator is must be an authorized user who will keep track
of all the uploaded notes and manage users as well through the admin panel. New features can be
added to the system as per requirements.

1
Notes Sharing System

1.3 Scope
This project has a large scope as it has the following features which help in making it easy to use,
understand and modify it:

 Ease of sharing notes


 No Need to do Paper Work.
 To save the environment by using paper free work.
 To increase the efficiency of the notes.
 Management of all notes.
 Easy and secure user log in and registration.
 Easy password recovery through email.
 Department based notes management.

Main Points are:

 Simplified Management of all notes.


 Upload of notes.
 Approve and disapprove notes features.
 Admin Panel,
 User profile management

CHAPTER-2. SYSTEM ANALYSIS

2
Notes Sharing System

2.1. Identifications of need:


Imagine you're in school or at work, and you want to share your notes or ideas with others easily.
That's where a note-sharing system comes in handy.
 Sharing and Learning Together: It's like having a digital space where everyone can
share their notes and study materials. This helps students learn better and professionals
work together more effectively.

 Easy Access Anywhere: You can access your notes from your computer, phone, or
tablet, no matter where you are. It's like having your notes with you all the time, just a
click away.

 Keeping Things Organized: Instead of having notes scattered everywhere, you can keep
them all in one place. You can even organize them neatly by subject or topic.

 Saving Important Stuff: You can store important notes and documents safely, so you
can find them easily later on when you need them.

 Keeping Things Safe: Your notes are kept safe and secure, so you don't have to worry
about losing them or someone else seeing them without permission.

2.2. Preliminary Investigation:


Preliminary investigation for a note-sharing system project involves gathering initial information
to understand the project's feasibility and requirements.
1. Problem Statement:
 Identify the need for a note-sharing system.
 Determine the specific challenges users face in sharing and managing notes.
2. Stakeholder Analysis:
 Identify all stakeholders involved (e.g., students, teachers, professionals, administrators).
 Determine their roles, interests, and expectations regarding the system.
3. Checking If We Can Do It:
 We look at what we need to build the system and see if it's possible with the technology
and resources we have.

4. Planning the Time:


 We make a rough plan of when we'll do each part of the project and when we'll finish.

3
Notes Sharing System

5. Conclusion:
 Summarize the findings of the preliminary investigation.
 Provide recommendations on whether to proceed with the project based on feasibility,
risks, and potential benefits.

2.3. Literature Review:


A literature review of note-sharing sites in simple language would look at different websites
where people can share their notes with each other. These sites are like online platforms where
users can upload their notes and others can access them.

1.Purpose: Note-sharing sites are created to help students and learners share study materials,
lecture notes, and other educational resources.
2.Features: These sites typically allow users to upload their notes in various formats such as text
documents, PDFs, or images. Users can also search for specific topics or courses to find relevant
notes. Some sites offer features like commenting and rating, where users can provide feedback
on the quality of the notes.
3.Benefits: Note-sharing sites make it easier for students to access supplementary materials for
their studies. They can find notes on subjects they're struggling with or explore additional
resources to deepen their understanding.
4.Drawbacks: One potential drawback is the quality control of the notes. Since anyone can
upload notes, there may be inaccuracies or poorly written content. Users should be cautious and
verify the information they find on these sites.
5.Popularity: Note-sharing sites have gained popularity among students worldwide due to their
convenience and accessibility. Some sites have millions of users and a vast collection of notes on
various subjects.
6.Accessibility and Inclusivity: Note-sharing sites contribute to making education more
accessible to a wider audience. Students who may have missed classes due to various reasons or
those with different learning styles can benefit from accessing notes shared by others.

2.4. Project Feasibility Study

4
Notes Sharing System

A feasibility study for a note-sharing site would assess whether the idea is viable and practical to
implement.

1.Technical Feasibility:

 Infrastructure: Do we have the technology and resources to build the website? Can we
ensure it works well on different devices like computers, tablets, and smartphones?
 Security: Can we keep the website safe from cyber-attacks and protect users' data?
 Scalability: Will the website be able to handle a large number of users and notes without
crashing?

2.Operational Feasibility:

 Usability: Will users find the website easy to navigate and use? Can they upload and
access notes without any hassle?
 Maintenance: Can we keep the website running smoothly over time? How much effort
will it take to fix any issues that come up?
 Community Engagement: Will users actively participate in sharing notes and engaging
with the platform?

3.Economic Feasibility:

 Costs: How much will it cost to develop the website, including technology, personnel,
and marketing expenses?
 Revenue Streams: Can we generate enough revenue through methods like subscriptions,
advertisements, or premium features to cover these costs and potentially make a profit?
 Market Potential: Is there enough demand for a note-sharing site to make it financially
viable? What is the competition like, and how can we differentiate ourselves to attract
users?

2.5. PROJECT PLANNING


Project Milestones:
5
Notes Sharing System

Week 1: Planning and Setup


 Define project scope, objectives, and requirements.
 Set up development environment with Django framework in PyCharm.
 Create wireframes and mockups for user interface design.

Week 2: Frontend Development


 Implement HTML and CSS templates based on the approved designs.
 Develop user registration and login forms.
 Design user profile page and note management interface.

Week 3: Backend Development


 Set up Django models for users, notes, and admin functionalities.
 Implement user authentication and authorization.
 Develop CRUD (Create, Read, Update, Delete) operations for notes.

Week 4: Integration and Testing


 Integrate frontend and backend components.
 Conduct thorough testing of all features and functionalities.
 Fix any bugs or issues identified during testing.

Final Week: Deployment and Documentation


 Prepare user documentation and guidelines.
 Conduct final review and ensure all project requirements are met.

Project Success Criteria:


 Successful deployment of the note-sharing website within the specified timeframe.
 Positive feedback from users on usability and functionality.

2.6. Software Requirement Specifications:


2.6.1. Input:

6
Notes Sharing System

 User Registration Information: This includes user-provided data such as username,


email address, and password during the registration process.
 Note Content: Users input the content of their notes, including text, images, and
attachments.
 Comment and Feedback: Users input their comments, feedback, or suggestions on
shared notes or discussions.

2.6.2. Output:
 Registration/Login Page: Interface for users to create new accounts or log in to existing
ones.
 Dashboard: Overview page displaying notes, folders, notifications, and other relevant
information.
 Search Results: The system outputs search results based on the user's query, displaying
relevant notes and documents.
 User Profile: Display of user information, settings, and activity history.

2.6.3. Functional Requirement:

1.User Management:
 User Registration: Users should be able to create new accounts by providing
necessary details like username, email, and password.
 User Authentication: The system must authenticate users during login using valid
credentials.
 User Profile Management: Users should be able to update their profile information,
including profile picture, bio, and contact details.

2. Note Management:
 Note Search: Users should be able to search for specific notes using keywords or
filters, with results displayed based on relevance.
 Note Sharing: Users should be able to share their notes with other users or groups,
specifying permissions for viewing and editing.

3. Performance and Scalability:

7
Notes Sharing System

 Response Time: The system should provide fast response times for user interactions,
ensuring a smooth and responsive user experience.
 Scalability: The system should be able to handle a large number of users and notes
without compromising performance or reliability.

4. User Interface:
 Intuitive Interface: The user interface should be intuitive and user-friendly, allowing
users to navigate the system easily and perform tasks efficiently.
 Accessibility: The system should be accessible to users with disabilities, following
accessibility standards and guidelines.

2.6.4. Technical Requirement:

1.Hardware Requirement:
 RAM: 1 GB (further increase that as per requirement.).
 Hard Disk: 80 GB (further increase that as per requirement.)
 Display: 1024 * 768, True Type Color-32 Bit
 Mouse: Any Normal Mouse.
 Keyboard: Any window Supported Keyboard.

2. Software Requirements:
 Technology: Python Django
 IDE: Pycharm/Atom
 Client Side Technologies: HTML, CSS, JavaScript, Bootstrap
 Server Side Technologies: Python
 Data Base Server: Sqlite
 Operating System: Microsoft Windows/Linux

2.6.5. Data Dictionary

8
Notes Sharing System

 Signup Table

Field Name Data Type Constraints Description

PRIMARY KEY, Unique identifier for each signup


id INT AUTO_INCREMENT record.

user_id INT FOREIGN KEY (User) References the User model.

contact VARCHAR(10) NULL Contact number of the user.

branch VARCHAR(30) NOT NULL Branch of study or department.

Role of the user (e.g., teacher,


role VARCHAR(15) NOT NULL student)

 Admin Table

Field Name Data Type Constraints Description

PRIMARY KEY, Unique identifier for each admin


id INT AUTO_INCREMENT action.

admin_id INT FOREIGN KEY (User) References the User model.

Type of action performed by the


action_type VARCHAR(30) NOT NULL admin.

Description of the action


action_description TEXT NOT NULL performed.

The timestamp when the action


action_timestamp DATETIME NOT NULL was performed.

 Notes Table

9
Notes Sharing System

Field Name Data Type Constraints Description

PRIMARY KEY,
id INT AUTO_INCREMENT Unique identifier for each note.

user_id INT FOREIGN KEY (User) References the User model.

Date when the note was


uploadingdate VARCHAR(30) NOT NULL uploaded.

Branch of study or department


branch VARCHAR(30) NOT NULL related to the note.

subject VARCHAR(30) NOT NULL Subject of the note.

notesfile FileField NULL File containing the notes.

Type of the file (e.g., PDF,


filetype VARCHAR(30) NULL DOCX).

description VARCHAR(200) NULL Description of the note.

Status of the note (e.g.,


status VARCHAR(15) NOT NULL Pending, Accept, Reject).

2.7. SOFTWARE ENGINEERING PARADIGM APPLIED

The software paradigm applied in your project is the Model-View-Controller (MVC)


architectural pattern. Here's how it aligns with our Django project structure:

10
Notes Sharing System

 Model: Defined in models.py, where you have defined models for Signup and Notes.
These models represent the data structure of your application and interact with the
database.

 View: Represented by the functions in views.py. These functions handle user requests,
process data from the models, and render appropriate HTML templates. Each view
function corresponds to a specific URL endpoint and is responsible for generating the
appropriate response.

 Controller: In Django, the URL configuration (urls.py) serves as the controller. It maps
URL patterns to specific view functions, defining the flow of control in the application.
Requests coming from users are routed to the appropriate view function based on the
URL pattern.

Additionally, our project follows the Django MTV (Model-Template-View) architecture, which
is essentially a variation of MVC tailored for web development with Django:

 Model: Represents the data structure (e.g., Signup and Notes models).
 Template: HTML templates stored in the templates directory, which are used to present
the user interface.
 View: Functions in views.py that handle user requests and interact with models to fetch
or manipulate data, then render templates to generate HTML responses.

This architectural pattern promotes separation of concerns, making your codebase more modular,
maintainable, and scalable.

Software Paradigm Applied: Model-View-Controller (MVC) architectural pattern, with


adherence to the Django MTV (Model-Template-View) architecture.

2.8. Data Models:


2.8.1. Data Flow Diagrams (DFD):

11
Notes Sharing System

Upload Edit
Account Database
Notes File Uploaded Notes
v Confirm

Notes dragged
Publish
Verify Into Browser

User
Admin Verify Notes
Login Details Login to View
Account Notes

Login Details

Admin Notes Feedback Download


Notes

Notes feedback

Fig: Context Level DFD

2.8.2. Entity-Relationship Diagrams (E-RD):

Accept Notes
12
Notes Sharing System

View All notes Reject Notes

Admin

contact Name

Is

Student registered Teacher


type
type
Name
password
email
contact
branch

File type
Profile Upload Notes

branch
edit
View

My notes
subject
notes
Change

password

2.8.3. Use-Case Diagram:

13
Notes Sharing System

Manage Notes

Manage Users

Accept Notes

Reject Notes

Admin System

Use-Case diagram: Admin and System

14
Notes Sharing System

Upload Notes

Search Notes

Download Notes

Edit/Delete
Notes

User System

Use-Case diagram: User and System

2.8.3. Class Diagram:

15
Notes Sharing System

Notes
Admin
S.no Name Type
S.no Name Type
1. Uploaded by Varchar(30)
1. adminname Varchar(30)
2. Uploading date Varchar(15)
2. password Varchar(20)
3. Branch Varchar(15)

4. Subject Varchar(20)

5. File-type text
Users
6. Description Varchar(200)
S.no Name Type
7. Status Varchar(15)
1. First Varchar(25)
name
2. Last Varchar(15)
name
3. Email-id Varchar(30)
4. Contact Varchar(10)
5. Password Varchar(20)
6. Branch Varchar(15)
7. Role Varchar(10)

2.6.3. Sequence Diagram:

16
Notes Sharing System

Login Application Database

:Validate()
:executeQuery()

Login req
Response
Show Result
Admin

Success:hide Failed:show(

Fig: Sequence diagram for Admin

17
Notes Sharing System

Login Application Database

:Validate()
:executeQuery()

Login req
Response
Show Result
User

Success:hide Failed:show(

Fig: Sequence diagram for User

CHAPTER-3. IMPLEMENTATION TECHNOLOGY

18
Notes Sharing System

3.1. Programming Language

1. HTML: HTML (Hypertext Markup Language) is the standard language used to create and
design documents on the World Wide Web. It provides the fundamental structure for web pages
and web applications.
Key Components of HTML
 Tags: HTML tags are the basic building blocks of HTML. They are used to define
elements within a document. Tags are enclosed in angle brackets, e.g., <tagname>.
 Elements: An element in HTML is everything from the start tag to the end tag, including
the content in between.
 Attributes: Attributes provide additional information about HTML elements. They are
always included in the opening tag and usually come in name/value pairs like
name="value".

2. Python: Python is a high-level, interpreted programming language known for its simplicity
and readability. It supports multiple programming paradigms and is widely used in various
fields, including web development, data analysis, artificial intelligence, scientific computing, and
more.
Key Features of Python

 Readability and Simplicity: Python's syntax is straightforward and resembles natural


language, making it easier to learn and use.
 Interpreted Language: Python is an interpreted language, meaning code is executed
line-by-line, which makes debugging easier.

3.CSS (Cascade Style Sheet): CSS is a language used to specify the style of web pages,
including aspects like layout, colors, and fonts. It allows developers to separate content (HTML)

19
Notes Sharing System

from design, making it easier to maintain and update websites. CSS enhances the user experience
by making web pages more visually appealing and responsive.
Key Features of CSS
 Selectors: CSS selectors are used to select the HTML elements you want to style.
Examples include element selectors, class selectors, and ID selectors.
 Properties: CSS properties define the styles to be applied to the selected elements.
Properties are paired with values to create rules.
 Box Model: The CSS box model describes the rectangular boxes generated for elements
in the document tree. It consists of margins, borders, padding, and the content area.

4.JavaScript: JavaScript is a versatile, high-level programming language that enables dynamic


interactions on websites. It is one of the core technologies of web development, alongside HTML
and CSS. JavaScript can be used to create interactive effects, handle user inputs, and manipulate
the Document Object Model (DOM).
Key Features of JavaScript
 Interactivity: JavaScript can respond to user actions such as clicks, mouse movements,
and keyboard inputs, making web pages more interactive.
 DOM Manipulation: JavaScript can access and modify the content and structure of
HTML documents through the DOM API.

5.Bootstrap: Bootstrap is a popular open-source front-end framework for developing responsive


and mobile-first websites. It provides a collection of CSS and JavaScript tools for creating
modern and visually appealing web pages.
Key Features of Bootstrap
 Predefined CSS Classes: Bootstrap provides a wide range of CSS classes for
typography, buttons, forms, tables, and other UI components.
 Responsive Design: Bootstrap's responsive grid system allows for flexible layouts that
adapt to various screen sizes and devices.

3.2. Developing Environment

20
Notes Sharing System

Pycharm: PyCharm is an IDE used for programming in Python. It provides code analysis, a
graphical debugger, an integrated unit tester, integration with version control systems (VCS), and
supports web development with Django. PyCharm is available in three editions: The Community
Edition, the Professional Edition, and the Educational Edition.
 Community Edition: Free and open-source, suitable for pure Python development.
 Professional Edition: Paid version with additional features for web development, data
science, and other advanced capabilities.
 Educational Edition: Free version aimed at helping teachers create courses and for
students to learn Python programming.

Key Features of PyCharm


1.Code Completion and Analysis
 PyCharm provides intelligent code completion, real-time code analysis, and
suggestions that help developers write clean, efficient, and error-free code.
 Example: Start typing a function name, and PyCharm will suggest possible
completions.

2.Debugging and Testing


 PyCharm includes a powerful debugger that allows for step-by-step execution,
breakpoints, and variable inspection.
 Integrated testing frameworks support unit testing and test-driven development
(TDD).
 Example: Set breakpoints in your code and run the debugger to inspect variables and
control flow.

3.Web Development
 The Professional Edition supports web development frameworks such as Django,
Flask, and Pyramid.
 Features include template debugging, ORM support, and front-end development
tools.
 Example: Create a Django project and use PyCharm to manage models, views,
templates, and static files.

CHAPTER-4. SYSTEM DESIGN

21
Notes Sharing System

4.1 Module Details

4.1.1. Registration:
 Student can register with valid details like contact detail, email, profile details etc.
 Teacher can register with valid details like specific branch, contact detail, email.

4.1.2. Student Modules:


 Search Notes Via stream, title and subject.
 Download Notes
 Change Password

4.1.3. Teacher Modules:


 Upload Notes
 Delete and update our Notes
 Change Password

4.1.4. Admin Modules:


 Manage (View Delete) Users
 Manage(View/Delete) Notes
 Accept or Reject Notes
 Change Password

4.2. DATA INTEGRITY AND CONSTRAINTS

22
Notes Sharing System

For data integrity and constraints in our Django project, you've implemented several measures to
ensure the consistency, accuracy, and reliability of your data. Here's an overview of the data
integrity and constraints applied in our project:

 Database Relationships: We've established relationships between different models using


Django's ForeignKey field. For example, the Notes model has a ForeignKey relationship
with the User model, ensuring that each note is associated with a specific user.

 Foreign Key Constraints: By using on_delete=models.CASCADE in ForeignKey


fields, we've enforced referential integrity in your database schema. This constraint
ensures that if a referenced record (e.g., a user) is deleted, all associated records (e.g.,
notes) are also deleted, preventing orphaned records.

 Field Constraints: Various field constraints are applied to model fields to ensure data
consistency. For example, max_length constraints are set for fields like contact, branch,
subject, and filetype to limit the length of input data.

 Default Values: Default values are specified for certain fields, such as status in the Notes
model. This ensures that if a value is not provided during record creation, a default value
is automatically assigned, maintaining consistency.

 User Authentication and Authorization: Django's built-in authentication system is


utilized for user registration, login, and session management. This ensures that only
authenticated users can access certain functionalities, enhancing data security and
integrity.

 Data Validation: We've implemented form validation logic to ensure that only valid data
is accepted from user input. For example, in the upload_notes view, you check if all
required fields are provided before saving the note to the database, preventing the
insertion of incomplete or incorrect data.

By implementing these data integrity measures and constraints, we've established a robust
foundation for our application, reducing the risk of data corruption, inconsistency, and security
vulnerabilities. These practices contribute to the overall reliability and usability of our note-
sharing website.

4.3. DATA DESIGN

23
Notes Sharing System

Admin

Field Name Data Type Constraints Description

PRIMARY KEY, Unique identifier for each


id INT AUTO_INCREMENT admin action.

admin_id INT FOREIGN KEY (Users.id) References the Users table.

Type of action performed by


action_type VARCHAR(30) NOT NULL the admin.

User
Field
Name Data Type Constraints Description

PRIMARY KEY,
id INT AUTO_INCREMENT Unique identifier for each user.

username VARCHAR(150) NOT NULL, UNIQUE The username of the user.

password VARCHAR(128) NOT NULL Hashed password of the user.

first_name VARCHAR(30) NOT NULL First name of the user.

last_name VARCHAR(30) NOT NULL Last name of the user.

email VARCHAR(254) NOT NULL, UNIQUE Email address of the user.

Designates whether the user can


is_staff BOOLEAN NOT NULL log into the admin site.

Notes

24
Notes Sharing System

Field Name Data Type Constraints Description

PRIMARY KEY,
id INT AUTO_INCREMENT Unique identifier for each note.

user_id INT FOREIGN KEY (Users.id) References the Users table.

Date when the note was


uploadingdate VARCHAR(30) NOT NULL uploaded.

Branch of study or department


branch VARCHAR(30) NOT NULL related to the note.

subject VARCHAR(30) NOT NULL Subject of the note.

notesfile FileField NULL File containing the notes.

Type of the file (e.g., PDF,


filetype VARCHAR(30) NULL DOCX).

description VARCHAR(200) NULL Description of the note.

Status of the note (e.g.,


status VARCHAR(15) NOT NULL Pending, Accept, Reject).

4.4. DATABASE SECURITY DESIGN CONSTRAINTS

Database security design constraints are essential for ensuring the confidentiality, integrity, and
availability of your data. In our Django project, we have implemented several security design
constraints to protect our database from unauthorized access, data breaches, and other security
threats.

1. Authentication and Authorization:


 Authentication: We have implemented user authentication using Django's built-in
authentication system. Users need to log in with valid credentials (username and
password) to access certain functionalities.

25
Notes Sharing System

 Authorization: Certain views and functionalities are protected using conditional checks,
such as checking if a user is authenticated (request.user.is_authenticated) or if a user is a
staff member (user.is_staff). This enforces access control based on user roles.

2. Encryption:
 Password Storage: Django's authentication system automatically hashes and salts
passwords before storing them in the database. This protects user passwords from being
exposed in case of a database breach.
 HTTPS: While not directly implemented in the provided code snippets, it's important to
ensure that communication between the web server and clients is encrypted using HTTPS
(SSL/TLS) to prevent eavesdropping and tampering of data in transit.

3. Input Validation and Sanitization:


 Form Validation: In our views, we have performed form validation to ensure that
required fields are provided and that data meets certain criteria (e.g., length constraints).
This helps prevent common vulnerabilities such as SQL injection and cross-site scripting
(XSS) by sanitizing user input.
 Parameterized Queries: Our code utilizes Django's ORM to construct database queries,
which helps prevent SQL injection attacks by automatically parameterizing queries and
escaping user input.

4.5. User Interface Design

4.5.1. Index page

26
Notes Sharing System

4.5.2About Us

27
Notes Sharing System

4.5.3. Contact Us

28
Notes Sharing System

4.5.4. Sign Up

29
Notes Sharing System

4.5.5. Login

4.5.6. Admin Login

30
Notes Sharing System

4.5.7. Admin Home

31
Notes Sharing System

4.5.8. Pending Notes

4.5.9. Accepted Notes

32
Notes Sharing System

4.45.10. Rejected Notes

4.5.11. View All Notes

33
Notes Sharing System

4.45.12. View Users

4.5.13. User Home Page

34
Notes Sharing System

4.5.14. Edit Profile

4.5.15. Change Password

35
Notes Sharing System

4.5.16. Upload Notes

4.5.17. View My Notes

36
Notes Sharing System

4.5.18. View All Notes(Accepted)

4.5. Text Case Design

37
Notes Sharing System

For our note-sharing website project, there's a tailored test case design covering various aspects
of functionality, security, usability, and performance:
1. Functional Testing:
User Authentication:
 Test Case 1: Verify that a new user can register with valid credentials.
 Test Case 2: Validate that registered users can log in with correct credentials.
 Test Case 3: Ensure that invalid login attempts are properly handled.
Note Management:
 Test Case 4: Test note creation functionality for authenticated users.
 Test Case 5: Verify that users can view their own notes after logging in.
 Test Case 6: Test note deletion functionality for authenticated users.
Admin Functionality:
 Test Case 7: Ensure that administrators can log in with valid credentials.
 Test Case 8: Validate admin dashboard functionality, including viewing pending notes
and managing users.
 Test Case 9: Verify that administrators can change the status of notes (e.g., accept,
reject).
Profile Management:
 Test Case 10: Test profile editing functionality for authenticated users.
 Test Case 11: Validate password change functionality for authenticated users.
 Test Case 12: Ensure that users can log out successfully.

2. Security Testing:
Input Validation:
 Test Case 13: Test for SQL injection vulnerabilities by injecting SQL code into input
fields.
 Test Case 14: Validate that HTML and JavaScript code is properly sanitized to prevent
cross-site scripting (XSS) attacks.
Authentication and Authorization:
 Test Case 15: Verify that unauthorized users cannot access restricted functionalities.
 Test Case 16: Test for privilege escalation vulnerabilities by attempting to access
administrative functionalities without appropriate permissions.

Data Encryption:

38
Notes Sharing System

 Test Case 17: Ensure that sensitive data, such as passwords, is stored securely using
encryption techniques.
 Test Case 18: Validate that data transmitted over the network is encrypted using HTTPS.

3. Usability Testing:
 Test Case 19: Evaluate the user interface for consistency, clarity, and ease of use.
 Test Case 20: Test for responsiveness and compatibility across different devices and
screen sizes.
 Test Case 21: Validate error messages and feedback provided to users for input validation
failures or other errors

CHAPTER-5. CODING

39
Notes Sharing System

5.1. Index

5.2. Views.py

40
Notes Sharing System

5.3. Models.py

5.4. User Home Page

41
Notes Sharing System

5.5. Admin Home Page

CHAPTER-6. TESTING
42
Notes Sharing System

6.1. Testing Techniques and Strategies

1. Unit Testing:
 Objective: Test individual units of code to ensure they work as expected.
 Tools: unittest, pytest, Django's built-in testing framework.
 Scope: Models, views, forms, and utilities.

2. Integration Testing:
 Objective: Test the interaction between different components/modules.
 Tools: pytest-django.
 Scope: Interaction between views, templates, and models.

3. Functional Testing:
 Objective: Test the application's functionality as a user would.
 Tools: Selenium, Django's LiveServerTestCase.
 Scope: User login, file uploads, form submissions, etc.

4. Regression Testing:
 Objective: Ensure new changes haven't broken existing functionality.
 Tools: Combination of unit and integration tests.
 Scope: All areas of the application.

5. User Acceptance Testing (UAT):


 Objective: Validate the system against user requirements.
 Tools: Manual testing with real user scenarios.
 Scope: Full application.

6.2. Testing Plan Used

43
Notes Sharing System

Test Plan Overview


Project: Django Notes Management System
Test Plan Author: Shlok Mishra and Aparna Tiwari

Objective: To ensure that all features of the Django Notes Management System are functioning
as expected and meet the requirements.

Test Plan Scope


 Authentication: Login, Logout, Signup.
 User Management: Profile view/edit, change password.
 Notes Management: Upload, view, delete, status change.
 Admin Panel: View users, manage notes.

Testing Schedule

Phase Duration Description

Unit Testing 1 week Testing models, views, and forms

Integration Testing 1 week Testing interactions between components

Functional Testing 1 week End-to-end testing of user functionalities

Regression Testing Continuous After every significant code change

User Acceptance Test 1 week Testing with end-users

Resources
 Testers: Aparna Tiwari , Shlok Mishra
 Tools: pytest, pytest-django, Selenium, Django TestCase

6.3. Test Reports for Test Cases

44
Notes Sharing System

Test Case Statu


ID Test Description s Remarks

TC-001 Test user signup functionality Pass Signup working as expected.

TC-002 Test user login functionality Pass Login working as expected.

TC-003 Test notes upload functionality Pass Notes upload working as expected.

TC-004 Test admin view users functionality Pass Admin can view users as expected.

TC-005 Test change password functionality Pass Password change working as expected.

TC-006 Test profile view functionality Pass Profile view working as expected.

TC-007 Test profile edit functionality Pass Profile edit working as expected.

TC-008 Test admin login functionality Pass Admin login working as expected.

TC-009 Test user logout functionality Pass User logout working as expected.

TC-010 Test view all notes functionality Pass View all notes working as expected

CHAPTER-7. FUTURE SCOPE

A website where you can share notes in easy languages has a good future. Here's why:

45
Notes Sharing System

 Easy to Understand: Easy languages are simple and can be understood by many people,
making the website useful to a lot of folks.

 Helps Learning: It's great for people who are learning a new language. They can find
notes that are easy to read and learn from.

 For Everyone: It's inclusive. People from different backgrounds and abilities can benefit
from it, including those who find it hard to learn.

 Working Together: People can share their own notes, so everyone can help each other
learn.

 Global Reach: Easy languages are understood by many people worldwide, so the
website can reach a lot of users around the world.

 Gets Better: The website can add more helpful features like recordings, games, and
videos to make learning even easier.

 Education: As the demand for language learning continues to grow globally, especially
with the rise of remote learning, a platform offering notes in easy languages can be
invaluable for students of all ages.

Adaptability: The website can evolve to incorporate features such as audio recordings,
interactive exercises, and multimedia content to enhance the learning experience further

CHAPTER-8. CONCLUSION

In conclusion, the notes sharing site caters to the dynamic needs of both teachers and students,
providing a seamless platform for sharing, accessing, and managing educational resources. With
its user-friendly interface and robust features, users can effortlessly upload, download, and
collaborate on notes, fostering a collaborative learning environment.

46
Notes Sharing System

For teachers and students alike, the ability to sign in and log in unlocks a plethora of
functionalities tailored to their specific roles. Teachers can upload lecture notes, study materials,
and assignments, empowering students with valuable resources to aid their learning journey.
Students, in turn, benefit from easy access to a wide range of educational materials, facilitating
their comprehension and academic growth.
The administrative functionalities further enhance the site's utility, allowing administrators to
oversee user activity, manage user accounts, and moderate content effectively. Admins can view
a comprehensive list of users, exercise control over user accounts by deleting or managing them,
and review and approve/reject notes uploaded by users. This administrative oversight ensures the
quality and integrity of the content shared on the platform.
Overall, this site helps everyone learn better by sharing notes, and the admins keep everything
running smoothly behind the scenes.

CHAPTER-9. BIBlLIOGRAPHY

 W3schools.com
 Djangoproject.com

47
Notes Sharing System

 Tutorialspoints.com
 Javatpoint.com
 Realpython.com

48

You might also like