Git Product home page Git Product logo

templa-rs's Introduction

PR Open Source Visitors Issues License Stars Forks Last Commit Size Maintained UI

One Stop Solution for all boilerplate needs!

Consider leaving a โญ if you found the project helpful.

Templa-rs

Templa-rs is a one-of-a-kind TUI tool written in Rust, which helps you generate boilerplate templates for various types of projects and architectures in a matter of seconds!

Templa-rs

Usage

  1. Download templa-rs here
  2. Run templa-rs
  3. Find the boilerplate you want
  4. Press [ENTER] to select it
  5. Start Coding

You can exit the program at any time using Ctrl+C

Running templa-rs

Windows

If you only wish to use Live Search you can run templa-rs on Windows by simply double clicking the exe file. If you wish to use CLI queries:

  1. Open a Terminal Window in the directory that the executable is in
  2. Run ./templa-rs.exe [OPTIONS]

Linux and macOS

  1. Open a Terminal window in the directory that templa-rs is in
  2. Run tar -zxvf {templa-file-name}.tar.gz
  3. Then run ./templa-rs [OPTIONS]

Features

Live Search

Live Search is a tool that lets you narrow down your search for the boilerplate you need, while also remaining inside the TUI at all times saving you time.

Live Search Features:

  • One way to use Live Search is to simply type a search term such as php, this will then show you all the boilerplates with php in their name
  • TAG: Tag allows you to search each boilerplate for a specific catagory of boilerplates (e.g. TAG:backend), using multiple tags may narrow down your search further

More methods to narrow down your search may be coming in the future so keep your eyes out!

Command Line Queries

You can also use queries directly from the command line to refine your search:

image

Template Preview

The Template Preview will show you a tree of the files that will be created when loading the boilerplate.

image

Built With

Landing Page

This is the design of the Landing Page website. It is not yet developed, if interested in developing this website, please contribute to issue#54.

Templa-rs

Link to the design: Figma File

Getting Started Contributing

Got a great new feature or a boilerplate you want to add? Why not contribute to the project:

  1. Fork it.
  2. Clone your forked repo and move inside it:
git clone https://github.com/{your-username}/templa-rs.git && cd templa-rs
  1. Checkout to a new branch to work on an issue:
git checkout -b my-amazing-feature
  1. Run It Locally
cargo run
  1. Once you're all done coding, it's time to open a PR :) Run the following commands from the root of the project directory:
git add .
git commit -m "A short description about the feature."
git push origin <my-amazing-feature>

Open your forked repo in your browser and then raise a PR to the master branch of this repository!

Contributing

To start contributing, check out CONTRIBUTING.md. New contributors are always welcome to support this project. If you want something gentle to start with, check out issues labelled as difficulty-easy or good-first-issue. Check out issues labelled as hacktoberfest if you are up for some grabs! :)

License

This project is licensed under MIT.

templa-rs's People

Contributors

aneeshpanda avatar animeshz avatar anuragyadav365 avatar batman004 avatar bro3886 avatar celeo avatar daddy-doubleshot avatar daemondeal avatar devanshi0510 avatar dinoosawruss avatar frankschmitt avatar hrithiksahu avatar ishan-001 avatar itmecho avatar kavxprxya avatar kugiyasan avatar mannan-goyal avatar mintbomb27 avatar mogiiee avatar mooyg avatar parthkgh24 avatar sanjaybaskaran01 avatar shubhampalriwala avatar sparsh-kamat avatar vini-fda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

templa-rs's Issues

CI: Scan for vulnerabilities

On every PR to master branch, scan for vulnerabilities. The choice for method to be used lies with the contributor! Fail the CI if any vulnerability is found (even if not severe).

Landing Page Website Design for Templa-rs

We're planning on releasing a new website for Templa-rs which will contain the links to all the releases packages, and basic usage guidelines for the project.

It should be an aesthetic single paged website that will contain all that's said above. The design can be made in any design software and the link can be added to the README for the PR.

Implement new design for the TUI

Make a UI design for the TUI in a design software like Figma, Adobe Xd, or Sketch.

We're looking for a design where we can accommodate a search bar, a list view of the available templates, and a preview of the boilerplate repository if possible. Any further additions are welcome.

Give a link to your design file in the README while making the PR, and make sure the link that you give is made public. (You may also include screenshots of the design in the PR if you wish)

Implement ASCII Art

Design an ASCII Art Logo with the name "Templa-rs".

Add it to the TUI preferably as a block as well as in the help command output.

[BUG] Unable to release templa-rs

Describe the bug

Currently, templa-rs uses submodules.json file to load and display the available templates, but while creating a release, this is not included, hence it isn't ready to ship solution yet.

To Reproduce
Steps to reproduce the behaviour:

  1. Build templa-rs using cargo build
  2. Place the binary in a directory where there isn't any submodules.json

Expected behaviour
It should at least have a minimal amount of repos already pre-built for user to select

Screenshots
image

Desktop (please complete the following information):

  • OS: Linux/Windows

Proposed Solution(s)

  1. Refer to the submodules.json file from GitHub while running the command
  2. Create a small key/value storage and store the data (serialize and deserialize on startup)

[ BREAKING BUG ] Does not clone any repos (invalid version 0 on git_proxy_options; class=Invalid (3))

Describe the bug
The bug is caused since The arch package libgit2 is flagged out-of-date: https://archlinux.org/packages/extra/x86_64/libgit2/. Reference1 Reference2

To Reproduce
Steps to reproduce the behavior:

  1. Go to templa-rs directory and try to execute the commands
    cargo run -- -t react -n "check"
  2. Select any of the templates and hit enter
  3. You will see the error invalid version 0 on git_proxy_options; class=Invalid (3) ] 0/100

Expected behavior
Clone any selected template

Screenshots
templa-rs bug

Desktop:

  • OS: Manjaro KDE ArchLinux systems

Progress Bar/Loader

Implement a progress bar or a pre-loader predominantly to be used when the repository is being cloned. But make sure to make it an independent and modular function so that other functions can call it in case it is needed.

Document new usage methods in README

Few changes were made in the PR #32 and subsequently TUI was also changed. The new GIF will be implemented in #49. Please make the required changes in the README which shows how to use the Live Search.

Implement Live Search

For now the search parameter is being taken as a flag (-t/--type), instead implement a input box in TUI and return matching results on every keypress. A reference for the same can be found here.

Preview of the Repository

The preview of the repository can be shown while the user browses through the available templates on another block aside the search results.

The available files and folders in the repository shown as a tree would suffice.

You can either scrape the repository or recursively clone the repositories. Any better method is welcome!

Add template repositories

In the submodules.json file add new template repositories for different languages and architectures in the following format -

{
        "name" : "<repo_name>",
        "url" : "<repo_url>",
        "tags" : ["<tags_relevant_to_repo>","<>","..."]
}

Please don't reference this Issue whilst opening a PR, as this issue will be indefinitely opened to encourage addition of more templates.

[ BREAKING BUG ] If user does not give a name for template, templa-rs breaks

Describe the bug
If the user does not give a name for template then they will see the error:cannot pick working directory for non-bare repository that isn't a '.git' directory; class=Repository (6)

To Reproduce
Steps to reproduce the behavior:

  1. Go to templa-rs directory and try to execute the command
    cargo run --
  2. Select any of the templates and hit enter
  3. You will see the error cannot pick working directory for non-bare repository that isn't a '.git' directory; class=Repository (6)

Expected behavior
The name of the boilerplate-template should be used instead of the error

Screenshots
image

Update GIF which aligns with the new UI

The task is to record a neat GIF showing all features and usage of the application and put it in the README and to remove the old one. Show the features accomplished in #42.

[BUG ] Error Messages not unwrapped

Describe the bug
Error messages are not unwrapped

To Reproduce
Steps to reproduce the behavior:

  1. Clone a repo using templa-rs
  2. re-clone using the same name
  3. You will find the error "Error Encountered while cloning, Ok("fatal: destination path 'new_proj' already exists and is not an empty directory.\n")"

Expected behavior
Error should be unwrapped into stderr like:

fatal: destination path 'new_proj' already exists and is not an empty directory.

Screenshots
image

Desktop (please complete the following information):

  • OS: All Platforms

Make Static website

You'll have to make a static website that explains the objective of the project and provides links to packages for all platforms. A SPA (Single Page Application) should be enough. This will depend on #53.

CI: Releases and Changelogs

Create a CI to release binaries for UNIX based systems as well as Windows and automatically create changelogs.

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.