This is a crowdsourced study notes platform empowering students to share and access high-quality academic resources. It fosters collaboration, enabling peer-to-peer learning and creating a comprehensive repository for diverse subjects. Together, we make studying more effective and accessible for everyone in the university.
To design and implement a dynamic crowdsourced platform that empowers university students to share, access, and contribute study notes. This platform aims to foster a culture of peer-to-peer learning and collaboration by providing a centralized repository of diverse, high-quality academic resources. By leveraging the collective knowledge and efforts of students, the platform seeks to enhance learning outcomes, promote inclusivity in education, and create an engaging and supportive academic environment where students can thrive together.
The Crowdsourced Study Notes Platform project aims to develop a user-friendly, collaborative web and mobile application that facilitates sharing and accessing academic resources. The scope of work includes the following deliverables:
-
User Management and Authentication: a) Develop secure user authentication and authorization features, including:
i) Registration and login for students.
ii) Role-based access control (e.g., admin for moderation). -
Core Features:
a) Upload and Download Resources:
i) Enable users to upload study materials, previous year papers, and notes.
ii) Provide a mechanism for users to download shared resources.
iii) Security: A person cannot share personal data like photo personal or personal video.
b) Search and Filter Functionality:
i) Implement a search bar with filters for subject, course, semester, or year.
c) Content Organization:
i) Organize resources by categories such as department, subject, and semester.Organize resources by categories such as department, subject, and semester.
d) Crowdsourcing Features:
i) Allow users to upvote, rate, and comment on uploaded materials to improve content quality. -
Administrative Panel
a) Build an admin dashboard for:
i) Moderating user-uploaded content to ensure appropriateness.
ii) Managing categories, subjects, and flagged materials. -
File Management and Storage
a) Local Development Environment:
i) Store uploaded files locally.
b) Cloud store to store files. -
Backend Development
a) Django
i) File upload/download.
ii) Ratings and comments.
iii) Search and filtering. -
Database Design and Integration
a) Design relational schemas for MySQL to store:
i) User data, file metadata, and ratings.
b) Integrate with MongoDB for flexible metadata handling if needed. -
Crowdsourcing Enhancements
a) Enable user interaction with features like:
i) Ratings to highlight useful materials.
ii) Comments for feedback and collaboration.
iii) Submission tracker using activity_visualizer
- Define two primary user roles:
a) Student: Can upload, download, and rate study materials.
b) Admin: Responsible for moderating content, managing categories, and addressing flagged uploads. - Analytics for Admins:
a) Active users on the platform.
b) Number of new registrations.
c) Popular materials and categories.
- user_id: A unique identifier for each user.
- name: Full name of the user.
- email: Registered email address for login and communication.
- password: The hashed password for secure authentication.
- role: Defines the user's role (e.g., "student" or "admin").
- profile_picture: URL for the user’s profile image.
- created_at / updated_at: Timestamps for when the user account was created or last updated.
- activity: Tracks user actions, including uploads, ratings, and comments.
- notifications_enabled: A boolean field to manage email or in-app notifications.
-
Request Fields:
i) query: The search term entered by the user.
ii) filters: Specific criteria for narrowing results (e.g., subject, semester, department).
iii) sort_by and order: Options to organize results (e.g., by rating or upload date).
iv) page and results_per_page: Pagination settings for navigating large datasets. -
Response Fields: i) total_results: Total number of matching entries.
ii) current_page: Current page number.
iii) results_per_page: Number of results displayed on the current page.
iv) results: A list of matching files with details like:
v) File metadata (e.g., title, description, subject, semester, department).
vi) Uploader information and file access link.
vii) Engagement metrics (e.g., rating and downloads).
-
Report
a) User Activity Report:
User details, including uploads, downloads, ratings, and comments.
b) Content Engagement Report:
Performance of uploaded resources (e.g., views, downloads, ratings).
c) Platform Analytics Report:
Number of active users, total uploads, downloads, and category-specific stats.
d) Custom Reports:
Generated based on filters like date range, department, or subject. -
Data a) In app content download Allow users to download study materials for offline use within the app while restricting access to raw files on their local storage.
- HTML: HTML5
- CSS: CSS3
- JavaScript: ECMAScript 2024 (ES15)
- Django: Version 5.1.5
- Python: Version 3.12
- Figma: Web-based application
- Flutter: Version 3.10
- MySQL: Version 8.1
- MongoDB: Version 6.0
- Bootstrap: Version 5.3
- Git: Version 2.42
- Photoshop Online: Web-based application for image editing