Giter VIP home page Giter VIP logo

cpm's Introduction

Prismify render

What is CPM

CPM stands for "Code Project Manager". It is a simple, cross-platform desktop app that shows all the projects the dev has on their machine without the need to browse each directory by themselves, tells how much storage space is used for each project, and can also delete the dependencies to free space (by removing the node_modules folder for example).

Features

These are the features that we want to build:

  1. List all the code projects on our disk without the need to browse each directory by ourselves.
  2. Ability to easily remove the projects or the dependencies for old projects to free some space.
  3. Ability to overview the project pieces of information such as:
    1. The size of the project
    2. Creation date
    3. Last Modified date
    4. Git information (if any):
      1. Unstaged files
      2. Staged files
      3. Unpushed commit

Techstacks

  1. Frontend
    1. SvelteKit for frameworks
    2. TailwindCSS for styling
    3. Shadcn-ui (Svelte version)
  2. Backend
    1. Tauri (Rust) for handling the backend (file system)

Architecture

CPM is a cross-platform application built using the Tauri framework. Tauri is based on Microsoft Edge-similar webview and Rust to work. Read about Tauri here

CPM relies on Rust API for file operations and Svelte, Typescript, and TailwindCSS for the webview. Rust codes are under the src-tauri directory whereas the webview code is under the src directory.

How to Install?

CPM is currently under heavy development. You can give your suggestions and feedback on our Discussions page.

Bug Reporting

If you find any bugs, please report them by submitting an issue on our issue page with a detailed explanation. Giving some screenshots would also be very helpful.

How to Contribute

If you feel comfortable writing code using the tech stack we mentioned earlier, we highly encourage you to contribute and read our Contributing Guide

cpm's People

Contributors

fmgono avatar

Watchers

 avatar

cpm's Issues

[FE] - Slicing from Design to Code

Image

Slicing the design (above) to code, ignore the functionality,

And for the sake of faster development. we use Shadcn-UI components (svelte version), cause already handle the accessibility

[BE] - A function to list all the NodeJS projects inside the disks

Create a function with Rust to list all the NodeJS projects inside the disk.

Requirements:

  • function name: get_all_node_js_projects
  • Recursive traverse for each directory and subdirectories
  • If find the node_modules project, skip it, and avoid scanning inside the node_modules directory.
  • Find a way to identify that "this directory" is a NodeJS project (can be done by checking if there is package.json in it or not. but do not be limited by it, use another approach or just open discussion for it)

This function expects to receive this information:

  • name: string
  • path: string
  • size: integer
  • size_view: String (formatted/human read size (eg: 987MB, 12KB, 1.32GB))
  • created at: timestamp or second
  • created_at_view: String (formatted date; eg: 1 Feb 2024)
  • modified at: timestamp or second
  • modified_at_view: String (formatted date; eg: 1 Feb 2024 or if its less than a month use text like "2 days ago")

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.