Skip to content

Latest commit

 

History

History
189 lines (120 loc) · 8.5 KB

README.md

File metadata and controls

189 lines (120 loc) · 8.5 KB

Status GitHub Issues GitHub Pull Requests License


CrewUp is a web application designed to assist students in generating comprehensive documentation and status reports for their projects.


📋 Table of Contents


🌟 Overview

While working on a group project, whether it be for a hackathon, a science project, or other academic projects, students frequently become anxious, usually about the deadline and their progress. With the help of appropriate regular status reports and project documentation, students can distribute their workload among teammates and focus on the project. But now there's a new issue: how do they make them? Guess who saves the day in this situation? It's CrewUp!

The goal of CrewUp is to simplify the documentation and status reporting process for student projects. Students can easily fill in project details and findings, and, with a single click, generate a well-formatted document. They can then download the document as a PDF, or have it sent as an email for easy sharing with team members.


⚒️ Built Using

html

css

javascript

reactjs

npm

vite




🚀 Getting Started

This guide will walk you through the steps to install and run the CrewUp web app locally on your machine.


⚙️ Prerequisites


Before you begin, make sure you have the following software installed on your machine:

  • Node.js (version 14 or higher)
  • npm (Node Package Manager)

📦 Installation


To install CrewUp, follow these steps:

  1. Clone the repository

    git clone https://github.com/TanmayAdithya/CrewUp.git
  2. Navigate to the project directory

    cd CrewUp
  3. Install the required packages and libraries

    npm i

🏃 Running Locally


To run CrewUp locally, follow these steps:

  1. Start the server by running the appropriate command. For example, npm run dev to start the development server using Vite. You will recieve a message similar to this:

    vite-run-dev.png

  2. On your device, hold down the Ctrl key (Windows) or Cmd key (Mac).

  3. Left-click on the link to the app. For example, click on http://localhost:5173. This will automatically open the app in your default browser.

  4. You should now see the CrewUp web app running in your browser.


Please note that the actual link and port number may vary depending on your specific setup and configuration.


💡 Additional Information


The jspdf package is used for PDF generation in CrewUp. CrewUp is built with React and utilizes the react and react-dom packages. Development dependencies include ESLint and Vite plugins for React. The code formatter used here is Prettier.

That's it! You have successfully installed and set up CrewUp on your local machine. You can now start exploring and working with the web app.


🎯 Usage

Utilising CrewUp is very simple. All you have to do is choose the file you want to download—be it the status report or the documentation—enter your information, click the download button, and presto!


🦾 Challenges

  • In the beginning I had no idea what I was doing because this was my first time using React and Vite. React hooks and the JSX format really overwhelmed me. I had spent so much time figuring out how everything worked that I had hardly developed the application's main page.
  • I was not confident in my project because the projects of other beginner developers were more advanced in comparison.
  • I had to look up several templates for the forms that I would be including in the project, and while doing so, I found challenging to pick one.
  • As I was unaware of package.json, I had to create and delete the repo three times and made an unsuccessful attempt to upload node modules to github (wasn't fun).
  • It took a long time to import custom fonts into jspdf. I initially gave up, but eventually the issue was resolved, and I'm still shocked at how simple it was.
  • ERRORS, ERRORS, ERRORS! I've never seen so many errors in building projects. I was unable to fix a couple of them no matter how hard I tried, which forced me to put some code changes on hold.
  • Trying to find out how to divide the text into new lines without having them come out of the document, I went through tutorial hell.
  • I wanted to challenge myself this time. I thus attempted to utilise an HTTP request to communicate user data to the backend.
  • Initially, I chose to implement the backend of my project using Go because I had fun learning the language and wanted to apply it to one of my projects. However, I encountered several errors that I didn't have the expertise to resolve. As a result, I made the decision to switch to JavaScript for the backend implementation.

💫 Achievements

  • I was able to use tools I was unaware of before starting the project to create a minimalistic and functional web application.
  • My development abilities were enhanced by building the project consistently over the weeks. It drove me to learn React, JavaScript, and test my Go abilities while also incorporating me to use git.
  • Even though I had at times wanted to give up my project, I performed at my best despite having no prior experience with the tech stack.
  • Explored and attempted advanced features, such as utilizing an HTTP request to communicate user data to the backend, showcasing a willingness to challenge myself.

🙌 Credits

Thanks to Ajin Kabeer on stackoverflow for introducing me to dynamic importing and code splitting in JS.
Thanks to Chart Js on YouTube for guiding me to splitTextToSize() in the jspdf library and helping me in resolving a problem that had been bothering me for weeks.


🤝 Contributing

We appreciate your interest in contributing to our project! Whether you want to report a bug, propose new features, or submit improvements to the existing codebase, your contributions are highly valued.

To get started, please take a moment to review the guidelines outlined in the CONTRIBUTING.md file.


📄 License


Licensed under the MIT License.

⬆️