Git Product home page Git Product logo

codehackerone / parkify Goto Github PK

View Code? Open in Web Editor NEW
11.0 1.0 14.0 8.84 MB

Hasslefree way to book your parking space with easy cancellations and timeline extensions. Beginner-friendly NodeJS Web Application.

Home Page: https://parkify-web.herokuapp.com

License: MIT License

JavaScript 57.13% EJS 39.07% CSS 3.37% Shell 0.43%
ejs express html-css-js mongodb nodejs bootstrap good-for-beginners javascript collaborate github gitlens microsoftvisualstudio student-vscode hacktoberfest

parkify's Introduction

PARKIFY_LOGO
PARKIFY_TEXT

</> with by @codehackerone.

version 1.0.0 license MIT author codehackerone


Hasslefree way to book your parking space with easy cancellations and timeline extensions


cover image

Why Parkify?

The application will make it easier for the drivers to find and pre-book their slots at the parking locations. The application will also save the frustration of the drivers who at times out of urgency park their cars on the street itself, which further adds to the traffic in the locality. With the use of the application, business professionals can focus on their daily tasks and not worry about their parking space.

Built With

This application is built on nodeJS, typed in javascript. Vanilla html-css-js is used to built the frontend.

Requirements

For development, you will only need Node.js and a node global package, npm, installed in your environement.

Node

  • Node installation on Windows

    Just go on official Node.js website and download the installer. Also, be sure to have git available in your PATH, npm might need it (You can find git here).

  • Node installation on Ubuntu

    You can install nodejs and npm easily with apt install, just run the following commands.

    $ sudo apt install nodejs
    $ sudo apt install npm
    
  • Other Operating Systems

    You can find more information about the installation on the official Node.js website and the official NPM website.

If the installation was successful, you should be able to run the following command.

$ node --version
v8.11.3

$ npm --version
6.1.0

If you need to update npm, you can make it using npm! Cool right? After running the following command, just open again the command line and be happy.

$ npm install npm -g


Installation

$ git clone https://github.com/codehackerone/parkify
$ cd parkify
$ npm install

Configure environmental variables

Create a .env file then edit it with your settings. You will need:

  • ENV=development
  • PORT=[your_port]
  • MONGO_URI=[your_mongo_uri]
  • JWT_SECRET=[your_jwt_secret]
  • EXPIRY=[your_jwt_expiry_time]
  • SECRET=[your_secret_for_mongostore]
  • CLOUDINARY_CLOUD_NAME=[your_cloudinary_cloud_name]
  • CLOUDINARY_KEY=[your_cloudinary_key]
  • CLOUDINARY_SECRET=[your_cloudinary_secret]
  • MAPBOX_TOKEN=[your_mapbox_project]
  • X_RAPIDAPI_HOST=[your_rapidapi_sendgrid_host]
  • X_RAPIDAPI_KEY=[your_rapiapi_sendgrid_key]
  • SENDGRID_EMAIL=[no-reply@your_domain.com]

Running the project

$ npm start
    or
$ npx nodemon

License

Parkify is available under the MIT license. See the LICENSE file for more info.

Contributing

  1. Find an issue to work on from here
  2. Ask the owner/maintainer for permission to work on the issue.
  3. Fork this repository. For help, click here
  4. Clone the forked repository in your local machine For help, click here
  5. Create a new branch For help, click here
  6. Add and commit your changes to the new branch For help, click here
  7. Create a Pull Request, add proper description, screenshots, comments and ask a review from owner/maintainer For help, click here
  8. The owner/developer will merge the Pull Request if it aligns with the practises we follow and is valid. One should not merge, and ask for a reviewer to merge it.

Please read CODE_OF_CONDUCT.md for details on the code of conduct, and the process for submitting pull requests.


This repo is owned/maintained by @codehackerone.

parkify's People

Contributors

ap1809 avatar codehackerone avatar dependabot[bot] avatar mustafaazad03 avatar villain45 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

parkify's Issues

Outdated bookings visible when logging in, disappears when reloaded

Describe the bug
Outdated bookings are visible when logging in and disappear when reloaded

To Reproduce
Steps to reproduce the behaviour:

  1. Complete a slot booking
  2. After the booking expires, signout and relogin
  3. The previous booking will be visible as the current Booking

Expected behaviour
The booking should be expected as completed

Additional context
Rethink and update the complete booking functionality.

Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.

Recommendations:

  • Add issues of varying difficulty to the repo often.
  • Generate issues even if you plan on solving them, so the repository appears as active.
  • Contribute/commit often to the repo so it does not go stale.

In order to submit your project into CX you will need at least one issue, but we recommend more so other students have an idea on where to start.

Redesign navbar

Use vanilla html/css/js with bootstrap to make the navbar

Update repo description

Other than GitHub Topics, your description will be the primary way of catching the users eyes. Your repo description should be clear and concise. Ask yourself:

  • In one sentence, how do I convey what my repo does?
  • What type of users am I interested in attracting to my repo?
  • If I was a user, what words or phrases might spark my interest?

Implement the garage extension algorithm

  • Create an algorithm that will check if the slot is available for the future if available, and redirect any incoming cars in that slots if other slots available in that garage

Add Topics

In Community Exchange, GitHub Topics will help the discoverability of your project. You should create topics pertaining to:

  • the tech stack you used on the project
  • the subject matter of your repo
  • the subject(s) covered in your LEARN.md

There is a limit of 20 topics you can add to your repo. There is no need to go overboard with topics. We recommend under 10 topics. You can add topics by following these instructions.

Community Exchange Introduction/Tracking

👋 Hi @Codehackerone ,

I am your GitHub mentor for the GitHub Education, Community Exchange (CX) project. I'll be collaborating with you on preparing your repo for CX.

You mentioned in your submission that you wanted to submit a Learn + Collaborate repo. This means that you would like to teach students, step by step, how to build this project as well as invite other students to collaborate and add features to this repo. I will generate issues, which will provide guidance on how to prepare your repo for a Learn + Collaborate CX submission on June 1, 2022.

This issue will serve as a tracking issue to track all issues related to CX. I recommend creating a new branch for every issue and opening a pull request to track changes so we can effectively collaborate with each other and merge changes when you and I feel like those changes are ready to be merged on your primary branch.

If you have any questions or concerns, please feel free to leave a comment on this issue or any of the other issues that are generated.

I look forward to working with you :octocat:

Issues

Update README

A README is often the first item a visitor will see when visiting your repository. We recommend that your README includes information on:

  • What the project does
  • Why the project is useful
  • How users can get started with the project
  • Mention your code of conduct
  • Who maintains and contributes to the project

You already have some great setup content. 😄

Search garages by name

Is your feature request related to a problem? Please describe.
There's a search box on 'all garages' page. The garages should be filtered according to text added.

Describe the solution you'd like
Conditional Filtering using ajax

Change Email verification Service

Describe the bug
Email verification not working

To Reproduce
Steps to reproduce the behaviour:

  1. After the user register

Additional context
Right now, we use nodemailer for sending out emails, can we use something else?

Add templates for issues

Issue templates are very helpful for a collaboration repo. When users identify a bug or want to add a new feature, you can provide templates so you can collect all the pertinent information you need to fix a bug or add a new feature.

We recommend creating a “Report Bug” and “Feature Request” issue template.

Some suggested prompts/questions you can add to a “Report Bug” template are:

  • Briefly describe the bug
  • What is the expected behavior?
  • Please provide step by step instructions on how to reproduce the bug

Some suggested prompts/questions you can add to a “Feature Request” issue template are:

  • Briefly describe your feature request
  • What problem is this feature trying to solve?
  • How do we know when the feature is complete?

Add LEARN.md

Learn repos should have a LEARN.md file to teach another student how to build your project step by step. You can explain how to build your project with text, code snippets, images, or even short (5 minute) long video lessons. As the maintainer of a Learn repo, the LEARN.md file requires you to think critically about how to explain the building of your project and how to also make it engaging. We don't expect you to be an expert teacher, but we would like you to reflect on how difficult it was to get to your level of knowledge, and then provide friendly guidance to help other students to learn.

Since your project is large, consider just teaching a certain tool or implementation that your project utilizes.

Redesign dashboard

  • Think of how we can improve the way the dashboard looks.
  • Can we add some new features to the screen
  • suggest some ideas

Add Code of Conduct

We recommend that every repo has a code of conduct. If you don’t feel comfortable creating your own Code of Conduct from scratch we highly recommend using one of the templates provided by GitHub. If you do use a template, please read through the template and ensure that you can and will abide by the Code of Conduct.

Please follow these instructions on how to add a Code of Conduct.

Suggestions

I've gone through the website. It's really awesome. But I feel that the UI needs some improvement.

Can I contribute to it??

Implement Compare Garage (Backend)

  • Implement an algorithm that compares Garages based on User Specifications, Wallet Balance, Hourly Ratings, and Time Available
  • Just need to make the route, controller and the service
  • This should come under the bookings section.

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.