Giter Site home page Giter Site logo

pdfassist's Introduction

This full stack web application allows users to create documents ready for filing in FL and TX courts by simply filing out a form. Users can create accounts, manage their own customer lists and templates, and generate FL summonses or TX citation requests.

Check out the app here. Test login: Email: [email protected] PW: 12345678

pdfAssist landing page

How It's Made:

Tech Stack:

Packages/Dependencies Used:

  • bcrypt
  • bootstrap
  • cloudinary
  • connect-mongo
  • cors
  • dotenv
  • ejs
  • express
  • express-flash
  • express-session
  • jquery
  • method-override
  • mongodb
  • mongoose
  • morgan
  • multer
  • nodemon
  • passport
  • passport-local
  • pdf-lib
  • validator

This app was built following MVC architecture. The front end was built using EJS for HTML templating, Bootstrap and CSS for styling, and JavaScript with a tiny bit of jQuery for functionality. The back end was built with Node.js, Express, MongoDB, and Mongoose. Passport and Validator enable users to create accounts and Bcrypt is used to hash user passwords so they remain secure when stored in MongoDB. Multer enables the user to upload templates from their local computer and Cloudinary is used for template storage and delivery. Pdf-lib is used to fill out templates and return pdfs for the user to view and download. Express-session using cookies to enable the user to return to where they left off in the app if they leave without logging out. Express-flash displays error messages to the user when during log in and sign up. Morgan is used to log requests and other information for use when debugging.

Optimizations:

In the future, I would like to build out the following features:

  • Generate multiple templates by uploading a .xlsx file containing the necessary information
  • Template selection when generating a pdf will be automatically filtered to only show a user's templates when if they make that selection in their settings
  • Preview a template from the templates dashboard
  • Build out a court database so clerks, court addresses, and document return methods can be auto-selected so the user only has to select the county
  • Expand template database to include FL Orders to Appoint Process Server and FL Writs of Garnishment
  • Limit the number of templates shown on the template page via pagination
  • Preview templates shown on on the template page
  • Display the last modified/upload date for each template on the templates page
  • Bug: On the TX citation generation page, the doc return method has to be unselected and re-selected before it works.

Lessons Learned:

When I started this app, I had wanted users to be able to edit/create templates using a built-in text editor. The first iteration of this project used the TinyMCE editor, and I struggled to get the data to save in MongoDB so that it could be rendered in a way the user could print off a pdf of the document later and ultimately ended up relying on TinyMCE's built-in templating functions. However, I quickly realized that selecting a specific template from TinyMCE when there were a large number of templates to select from resulted in a difficult user experience. So, I changed my approach so that the template database relied on the user to create and upload pdf forms that could be filled out with pdf-lib.

This was also my first experience using Bootstrap to for layout design and styling. After getting a handle on the syntax, it made designing and styling the app so much simpler and easier to than if I had coded everything out from scratch.

Additional Screenshots

pdfAssist user dashboard pdfAssist's form to generate a FL summons preview of a FL Summons generated by pdfAssist

pdfassist's People

Contributors

xiaolgrant avatar

Watchers

 avatar

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.