Skip to content

hiimkhel/DevNotes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevNotes – CS50 Final Project

Name: Kelly Ydrhan Course: CS50x – Introduction to Computer Science Final Project

Video Demo

https://youtu.be/empDWnJvbOI


Description

DevNotes is a web-based project management and developer documentation tool designed to help developers organize their projects and record their development process in a structured way. Unlike traditional note-taking apps, DevNotes focuses specifically on developer workflows by supporting different types of documentation such as notes, code snippets, and error logs.

The main goal of this project is to provide developers with a centralized workspace where they can track their learning progress, document bugs and fixes, and store reusable code references. DevNotes also supports collaboration, allowing multiple users to work on the same project while maintaining proper access control.

This project was built as a full-stack web application using Flask and SQLite, demonstrating concepts such as authentication, database design, relational data modeling, session management, and CRUD operations.


Features

Authentication and Authorization

  • User registration and login
  • Session-based authentication using Flask sessions
  • Access control to ensure users can only access authorized projects
  • Owner-only permissions for sensitive actions (e.g., project deletion, member management)

Projects

  • Create personal projects
  • Create collaborative projects
  • Add and manage project collaborators
  • Pin important projects for quick access
  • Delete projects (project owner only)

Entries

Each project can contain three different types of entries:

  • Notes – General documentation or learning notes
  • Code Snippets – Reusable code references
  • Error Logs – Bug reports and debugging records

Entry Management

  • Create, view, edit, and delete entries
  • A unified edit route handles all entry types
  • Error logs can be marked as Resolved or Unresolved to track debugging progress

Filtering and Search

  • Filter entries by type (All / Notes / Code Snippets / Error Logs)
  • Live search functionality within a project to quickly find entries

Collaboration

  • Project owners can invite other users as collaborators
  • Collaborators can view and edit project entries
  • Only project owners can add or remove members

How It Works

  1. A user registers and logs in to the application.
  2. The user creates a new project or joins an existing collaborative project.
  3. Within a project, the user can create entries categorized as notes, code snippets, or error logs.
  4. Entries are stored in a relational SQLite database and associated with both the project and the user.
  5. Users can search and filter entries to quickly retrieve relevant information.
  6. Project owners manage collaborators and permissions.

Technologies Used

  • Python
  • Flask
  • SQLite
  • HTML, CSS, JavaScript
  • Jinja2 Templates

Database Design

The database consists of multiple related tables, including:

  • users – Stores user authentication data
  • projects – Stores project information
  • project_collaborators – Manages collaboration and permissions
  • entries – Stores notes, code snippets, and error logs

Relationships are implemented using foreign keys to ensure data integrity between users, projects, and entries.


How to Run the Project

  1. Clone the repository.
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Initialize database:
    flask run
  4. Open browser and navigate to: -- http://127.0.0.1:5000

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors