GithubHelp home page GithubHelp logo

ishreya09 / campus-compass Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 16.13 MB

The "Campus Compass: Navigating College Life Together" is a purpose-built online platform that aims to enhance the college experience for students within a specific institution.

License: GNU General Public License v3.0

Python 9.97% CSS 33.48% HTML 13.98% JavaScript 42.57%
django django-framework mysql python3

campus-compass's Introduction

Campus-Compass

The "Campus Compass: Navigating College Life Together" is a purpose-built online platform that aims to enhance the college experience for students within a specific institution. Its primary objectives and goals include:

  • Resource Sharing: Facilitating the exchange of educational resources, textbooks, and study materials among students, alleviating financial burdens associated with higher education.
  • Mentorship and Guidance: Creating a mentorship network connecting students with experienced peers who offer academic and career guidance.
  • Doubt Resolution: Providing a platform for students to post questions, receive responses from peers and mentors, and foster a cooperative learning environment.
  • Community Engagement: Serving as a hub for academic discussions, enabling students to seek clarification on doubts and access essential announcements.
  • Vital Announcements: Allow the institution and clubs to efficiently share important college announcements, academic deadlines, and events.

campus-compass's People

Contributors

ishreya09 avatar mystery510 avatar darkknightsgh avatar shreyatippireddy avatar

Watchers

 avatar

campus-compass's Issues

US025- As a user, I want access to a search functionality that allows me to efficiently search for posts, resources, announcements, and users within the platform.

  • Global Search Bar (F001): Implement a search bar accessible from any page within the platform.

  • Posts Search (F002): Enable users to search for posts based on keywords, titles, or tags.

  • Resources Search (F003): Allow users to search for resources by keywords, titles, or tags.

  • Announcements Search (F004): Provide a search option for announcements based on keywords or titles.

  • Users Search (F005): Enable users to search for other users by name, username, or other identifying information.

  • Search Results Page (F006): Present search results in a structured manner for easy user navigation.

US018- As a user, I want a dedicated post detail page that provides an in-depth view of a specific post, including all associated comments. Additionally, I would like the option to interact with the post by comments.

Post Detail Page (F001): Create a comprehensive post detail page for a detailed view of a specific post. This feature involves:

  • Post Title and Content (F001.1): Display the post's title and content in an organized and user-friendly format.

  • Post Author and Timestamp (F001.2): Show the author's name and the timestamp when the post was created or last updated.

Comment Display (F002): Include all comments associated with the post on the detail page. This feature involves:

  • Comment Section (F002.1): Design a dedicated section where all comments related to the post are displayed in a clear and organized manner.

  • Comment Content (F002.2): Present each comment's content, author, and posting date for easy reference.

Comment Submission Form (F003): Implement a user-friendly form to allow users to submit comments on the post. This feature involves:

  • Comment Input Fields (F003.1): Create input fields for users to enter their comment content, name, and any other relevant information.

  • Submit Button (F003.2): Provide a "Submit" button that allows users to post their comments.

User Interaction (F004): Enable users to interact with the post and comments. This feature involves:

  • Comment Posting (F004.1): Allow users to post comments on the post detail page, ensuring that the comments are associated with the specific post.

US017- As a user, I want a customized feed that displays posts relevant to the branch I am associated with. Additionally, I would like the option to explore posts that are categorized by tags for easier access to specific content.

Branch-Based Post Feed (F001): Create a feed that shows posts specific to the user's associated branch. This feature involves:

  • Branch Association (F001.1): Ensure that the user's branch affiliation is linked to their account for personalized content delivery.

  • Customized Feed (F001.2): Develop a feed that displays posts based on the user's branch, allowing them to stay updated on relevant content.

Tag-Based Categorization (F002): Allow users to access posts categorized by tags for more focused content exploration. This feature involves:

  • Tag-Based Navigation (F002.1): Design a user interface that permits users to navigate posts based on chosen tags.

  • Tag Filtering (F002.2): Implement a filtering system that organizes posts according to selected tags, streamlining content discovery.

Content Presentation (F003): Display posts within the feed and tag-based categorization with relevant details. This feature involves:

  • Post Display (F003.1): Present posts within the feed or tag-based categorization, including key information such as post title, content, author, posting date, and associated tags.

  • Interactive Elements (F003.2): Enable users to interact with posts, allowing them to click on posts to view full content and explore related tags and an option to comment on the post.

US008- As an administrator, I want to have control over mentor approval, ensuring that approved mentors receive confirmation emails.

  • Admin Dashboard (F001): Create an admin dashboard interface that lists mentor registration submissions, displaying relevant details such as the mentor's name, domain, and bio.

  • Approval Checkbox (F002): Include checkboxes next to each mentor registration entry, which administrators can select to approve or disapprove a mentor.

  • Block for 6 Months (F003): Implement a system that automatically blocks mentors who are disapproved from reapplying for mentorship opportunities for the next six months.

  • Approval Email (F004): Automatically send an email to approved mentors, confirming their mentorship registration and providing additional information on the next steps.

US022- As a user, I want the ability to edit resources that I have previously uploaded, allowing me to update and maintain the content for improved accuracy and relevance.

  • Resource Editing Interface (F001): Provide a user-friendly interface for resource editing, allowing users to modify content.

  • Update Tags and Branches (F002): Allow users to update tags specifying target audiences and branches.

  • Save Changes (F003): Implement a "Save Changes" feature for saving edits.

  • Edit Permissions (F004): Ensure that users can only edit their own resources.

US020- As a user, I want to upload educational resources in PDF format, tagging them with target audiences and branches. Users should be able to view and download these resources.

  • Resource Upload (F001): Users can upload PDF resources.

  • Tagging System (F002): Users can assign tags specifying target audiences and domains.

  • Resource Storage (F003): Uploaded resources are stored securely.

  • Branch Selection Interface (F004): Create an interface that allows users to choose one or multiple branches from a list for which the resource is intended.

  • Metadata (F005): Include metadata like upload date and user information.

US012- As a club head and social media manager of a club, I want to create and manage announcements for my club's events and activities.

  • Announcement Creation (F001): Provide a user-friendly interface for club heads and social media manager of a club to create announcements with details about club events, activities, or news.

  • Access Control Decorator (F002): Implement a custom access control decorator to restrict the ability to create club event announcements only to club heads and social media managers of a club.

  • Unit Testing (F002.1): Write unit tests to verify that the access control decorator functions correctly.

  • Integration Testing (F002.2): Perform integration testing to ensure that the decorator works as intended within the system.

US016- As a user, I want the ability to create posts with a rich text editor, select the branches for which the post is intended, and set tags to categorize the post.

  • Text Editor Integration (F001): Integrate a user-friendly rich text editor into the post creation interface, allowing users to format and style their content.

  • Branch Selection Interface (F002): Create an interface that allows users to choose one or multiple branches from a list for which the post is intended.

  • Tag Creation (F003): Develop a tag creation system that allows users to create new tags when creating a post.

  • Post Publication (F004): Enable users to publish the post for others to view for people within same branch.

US001-As a user, I want to see a visually appealing Home Page layout, so it's engaging and informative and I want to access the about us and contact us widgets as well.

  • Home Page Layout (F001): Design an engaging and visually appealing Home Page layout that includes relevant content and images.

  • About Us Widget (F002): Implement an "About Us" widget on the Home Page, providing information about the company or project.

  • Contact Us Widget (F003): Implement a "Contact Us" widget on the Home Page, allowing users to easily get in touch.

  • Navigation Bar (F004): Create a sticky navigation bar at the top of the Home Page for easy navigation. Store it in base.html

  • Footer Bar (F005): Design a footer bar at the bottom of the Home Page with essential links and information. Store it in base.html

  • Link to Copyright and Contact Us (F006): Include a link to the Copyright and Contact Us page as part of the footer.

  • Template Development (F007): Develop HTML templates using Django's template system to structure base.html which contains Navigation Bar and Footer Bar and other functionalities which might be required accross the application.

  • Django URL Routing (F008): Create Django URL routing to render the data that will be displayed on the Home Page and the other pages mentioned in above features.

  • View Creation (F009): Implement Django views to handle HTTP requests for rendering the Home Page. These views will retrieve data from the database and pass it to the templates.

  • Static File Handling (F010): Configure Django to serve static files, such as images and CSS, for the pages.

  • Database Integration (F011): Integrate Django with a database (MySQL) using Django Models to store the data for the Contact Us form page.

US006-As a user, I want to access a "Forgot Password" and a "Change Password" page for password reset.

  • F001: Implement a "Forgot Password" feature that allows users to reset their passwords if forgotten.

  • F002: Send a password reset email to the user's registered email address.

  • F003: Allow users to securely reset their passwords through the provided link.

  • F004: Develop a "Change Password" feature for users to update their passwords while logged in, which asks them their old password and verifies if it is correct.

US013- As an admin, I want to have the ability to create and manage announcements from the admin panel for various aspects of college life, including college clubs, hackathons, events

Admin Announcement Creation (F001): Enable administrators to create announcements for various categories within the college system. This feature involves:

  • Admin Announcement Interface (F001.1): Develop an admin interface that allows administrators to input announcement details, including title, content, category (clubs, hackathons, events, resources), and attachment of PDF resources.

  • Announcement Publication (F001.2): Implement the ability for administrators to publish announcements to the designated announcement feeds.

Announcement Management (F002): Allow administrators to manage, edit, and delete announcements they have created. This feature involves:

  • Announcement Editing (F002.1): Provide administrators with the capability to edit or update existing announcements, including changing content, category, and attached PDF resources.

  • Announcement Deletion (F002.2): Enable administrators to delete announcements when they are no longer relevant.

US009- As an administrator, I want the ability to create and manage clubs, including designating club heads, to facilitate the organization of club activities within the system.

Club Creation (F001): Allow administrators to create new clubs. This feature involves:

  • Club Creation Form (F001.1): Create a form that enables administrators to input club details, such as club name, description, and objectives.

  • Club Database Storage (F001.2): Store the club information in the system's database, making it accessible for club management.

Club Head Designation (F002): Provide a way for administrators to designate club heads. This feature involves:

  • Club Head Selection (F002.1): Implement a process for administrators to choose a club head from existing club members or registered users.

  • Club Head Privileges (F002.2): Grant special privileges to designated club heads, such as the ability to manage club members, and create announcement.

Club Management (F003): Enable administrators to manage club announcement and members. This feature involves:

  • Club Activity Management (F003.1): Provide tools for administrators to oversee and manage club announcements.

  • Member Management (F003.2): Implement features for administrators to add or remove members in each club.

US007- As an aspiring mentor, I want to register for mentorship opportunities by submitting my resume, specifying my domain of expertise, and providing a brief description about myself.

  • Registration Form (F001): Create a registration form that includes fields for uploading a resume, specifying a domain, and entering a brief bio.

  • Application Time Limit (F002): Create a system that tracks when a mentor has last applied for mentorship and enforces a minimum six-month gap between applications.

  • Application Eligibility (F003): Display a message or disable the application process if a mentor attempts to apply again within the six-month period.

US004-As a user, I want to view and edit my user profile information.

  • F001: Frontend Design-Create a user friendly and visually appealing design for the user profile page.-Develop the frontend interface, including layout, elements, and styling.

  • F002: Backend Implementation-Develop the backend functionality to retrieve and display the user's college ID and basic details.-Integrate the frontend with the backend to ensure data is accurately populated on the user profile page.

  • F003: Django Model and Database-Define a Django model to store user profiles, including college IDs and basic details.-Configure the database to store and manage user profile data, ensuring data integrity and security.

  • F004: Edit Profile Functionality-Create a form or interface that allows users to edit their basic details, such as college ID.-Implement backend logic to process and update user profile data when changes are made.

US019- As a user, I want the ability to edit and delete my posts, as well as view all the posts I have authored on my profile for easy content management and reference.

Edit Post (F001): Allow users to edit their own posts. This feature involves:

  • Edit Button (F001.1): Add an "Edit" button or link to posts authored by the user, granting them the ability to make modifications.

  • Editing Interface (F001.2): Provide a user-friendly interface where users can edit the post title and content.

Delete Post (F002): Enable users to delete their own posts. This feature involves:

  • Delete Button (F002.1): Include a "Delete" button or link on posts authored by the user, allowing them to delete their posts.

User Profile (F003): Create a user profile section where users can view their authored posts. This feature involves:

  • Profile Access (F003.1): Implement a user profile section that users can access from the platform's interface.

  • Post Listing (F003.2): Display a list of all posts authored by the user within their profile.

  • Post Access (F003.3): Allow users to click on their posts to view full details.

Content Presentation (F004): Ensure that posts authored by the user are displayed within their profile with relevant details. This feature involves:

  • Post Display (F004.1): Present posts within the user's profile, including the post title, content, posting date, and other pertinent information.

  • Interaction Options (F004.2): Include options for editing and deleting the posts directly from the user's profile.

US003-As a user, I want to register and log in using user-friendly forms.

  • Create Branch and Department models and create API to fetch branch given department_id (F001)

User Registration (F002): Create user-friendly registration forms to allow new users to sign up for an account. This feature involves:

  • Registration Form (F002.1): Design and implement a user registration form with fields such as username, email, password, and any additional user information required.

  • User Registration View (F002.2): Create a Django view to handle the registration form submission. This view will validate the data, create a new user account, and store it in the database.

  • User Data Protection (F002.3): Ensure secure user authentication during the registration process. Passwords should be securely hashed before storage and CSRF tokens should be used to avoid CSRF attacks.

User Login (F003): Implement user-friendly login forms for existing users to access their accounts. This feature involves:

  • Login Form (F003.1): Design and implement a user login form with fields for username or email and password.

  • Login View (F003.2): Create a Django view to handle user login. The view should authenticate users based on their credentials and set up user sessions.

User Logout (F004): Provide users with the ability to log out from their accounts securely. This feature involves:

  • Logout View (F004.1): Implement a Django view that handles user logout. This view should invalidate the user's session.

US024- As a user, I want the ability to view other users' profile pages, where I can access their basic information, initiate a chat with them, and browse the posts and resources they have shared.

  • User Profile Access (F001): Enable users to access the profile page of other users based on usernames.

  • Basic Information Display (F002): Present the basic information of the viewed user, including their name, bio, and other relevant details.

  • Chat Option (F003): Implement a chat or messaging feature that allows users to initiate a conversation with the viewed user through WhatsApp API. Ensure this button is shown only when user has permitted access to show number publicly.

  • Posts and Resources Listing (F004): Display a list of the posts and resources shared by the viewed user.

US015- As a user, I want to access mentors within my branch for guidance. These mentors should also be recognized by their domains of expertise, with their resumes and basic information available and an option to chat.

Mentor Directory (F001): Provide a directory of mentors accessible by users. This feature involves:

  • Mentor List (F001.1): Create a list of mentors within the user's branch, making it easy to browse and search for mentors based on their domains of expertise.

  • Domain Segregation (F001.2): Organize mentors by their domains of expertise, allowing users to filter mentors by specific areas of interest.

  • Resume Access (F001.3): Attach mentor resumes to their profiles, making it convenient for users to view their professional background and experience.

  • WhatsApp Integration (F001.4): Implement a "Chat with Mentor" button on each mentor's profile, which links to WhatsApp, allowing users to initiate a chat, only if a mentor has allowed that option on their profile.

US002 - As a admin user, I want the Contact Us form to be managed by admin page through the Django admin backend, and I want administrators to respond through emails to users when a new Contact Us message is submitted.

  • Admin Handling for Contact Us (F001): Set up an admin interface to manage the messages received from the Contact Us form. This will allow administrators to view, respond to, and manage user inquiries conveniently.

  • Admin Dashboard (F003): Customize the Django admin dashboard to include a section specifically for managing Contact Us messages. This section should provide options to view and reply to.

  • Admin Reply Functionality (F003): Add the ability for administrators to respond to user messages directly through the admin interface. These responses should be stored and sent to the user's email address and the contact us query should be marked as resolved.

US011- As an administrator, I want the ability to add and manage branches and departments within the college or organization. These branches should be associated with specific departments for streamlined organization and management.

  • Branch Creation (F001): Develop a feature that allows administrators to add new branches, specifying details such as branch name and code.

  • Department Creation (F002): Implement a feature that enables administrators to add departments, providing information such as department name, code, and associated branch.

  • Branch-Department Linking (F003): Create a relationship between branches and departments so that each branch is associated with a specific department.

  • Department List (F004): Display a list of all departments for administrators to view and manage.

  • Branch List (F005): Display a list of all branches, showcasing their respective department associations.

  • API for Retrieving Branches for a Specific Department (F006): This feature involves creating an API endpoint that allows users to retrieve a list of branches associated with a particular department. The API will provide a convenient way for users to access this information from the user end of the system.

  • Unit Testing (F007): Write unit tests to verify that the API endpoint works as intended.

US021- As a user, I want to filter and view resources based on my branch and tags meant for a certain audience.

  • Resource List (F001): Display a list of available resources.

  • Filter by Branch (F002): Users should see the resources which were targeted for their branch

  • Tag-Based Filtering (F003): Enable users to filter resources based on selected tags.

  • Resource Access (F004): Provide options to view and download resources.

  • User-Friendly Interface (F005): Ensure an intuitive and visually appealing interface for resource browsing and filtering.

US005 - As a user, I want to complete user authentication to authenticate their identity through email confirmations.

Token Generation (F001): Generate unique tokens for email confirmation and link expiration. This feature involves:

  • Token Generation (F001.1): Develop a mechanism to generate unique tokens for each confirmation link, which ensures the link's security and validity.

  • Token Expiration (F002.2): Implement token expiration to make confirmation links valid for a only one time, improving security.

Email Confirmation (F002): Implement email confirmation as part of the user registration process. This feature involves:

  • Email Confirmation Workflow (F002.1): Develop a workflow where, after user registration, an email is sent to the user's provided email address with a confirmation link.

  • Confirmation Email (F002.2): Create a confirmation email template containing a unique confirmation link, which the user needs to click to verify their email address.

  • Confirmation Link Handling (F002.3): Design a Django view to handle the confirmation link, verify the user's email, and mark it as confirmed in the database.

User Status Management (F003): Manage user status based on email confirmation. This feature involves:

  • User Status Updates (F003.1): Update the user's status in the database to mark them as "unconfirmed" until they complete the email confirmation process.

  • Confirmed User (F003.2): After successful email confirmation, change the user's status to "confirmed" in the database.

Resend Confirmation Email (F004): Provide an option for users to request a resend of the confirmation email if they didn't receive it or it expired. This feature involves:

  • Resend Confirmation Email (F004.1): Implement a feature that allows users to request a resend of the confirmation email.

  • Handling Resend Requests (F004.2): Create a view that processes the resend request and sends another confirmation email with a new confirmation link.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.