GithubHelp home page GithubHelp logo

mohamedsabry0 / appointments_app Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 8.54 MB

This is the Appointments App, a web application built with Ruby on Rails, PostgreSQL, JavaScript, React, and Redux. It allows users to manage appointments and schedule appointments with engineers.

Home Page: https://appointments-app-5p6t.onrender.com

License: Other

Dockerfile 1.90% Ruby 54.55% JavaScript 33.51% SCSS 4.94% HTML 4.54% Shell 0.57%
rails react-rails react-rails-as-one-app

appointments_app's Introduction

Appointments App

📗 Table of Contents

📖 Appointments App

This is the Appointments App, a web application built with Ruby on Rails, PostgreSQL, JavaScript, React, and Redux. It allows users to manage appointments and schedule appointments with engineers.

🛠 Built With

Tech Stack

Server
  • Ruby
  • Rails
  • Database
  • Postgres
  • Client
  • Javascript
  • React
  • Redux
  • Key Features

    ...

    (back to top)

    💻 Getting Started

    To get a local copy up and running, follow these steps.

    Prerequisites

    In order to run this project you need:

        - ruby >= 3.2.2
        - rails >= 7.1.3
        - postgres >= 14.7
        - bundler 2.5.1
        - node.js 19.6.0
        - yarn 3.4.1
    

    Setup

    Clone this repository to your desired folder:

      git clone [email protected]:mohamedSabry0/appointments_app.git

    Install

    Install this project with:

      cd appointments_app
      bundle install
      yarn install

    You will need to follow these steps to have your own set of related project secrets:

    • delete config/credentials.yml.enc file
    • use this command EDITOR="code --wait" bin/rails credentials:edit
    • under secret_base_key add this line devise_jwt_secret_key:
    • in another terminal run bundle exec rails secret
    • take the output and use it as value for devise_jwt_secret_key
    • save the file and close it

    it will install the required gemfile for running the project

    run the following commands to create and migrate:

      rails db:create
      rails db:migrate
      rails db:seed

    Usage

    to use this project:

       bin/dev

    it will run the the server on localhost:3000

    to run tests:

       rspec --format doc

    (back to top)

    Kanban Board

    👥 Authors

    👤 Mohammad Yaser Safi

    👤 Eric

    👤 Mohamed Sabry

    (back to top)

    🔭 Future Features

    ...

    (back to top)

    🤝 Contributing

    Contributions, issues, and feature requests are welcome!

    Feel free to check the issues page. You are welcome to fork the repository and modify the code. We encourage pull requests.

    (back to top)

    ⭐️ Show your support

    Give a star⭐️ or a thumbs up 👍 if you like this project! You can visit my GitHub profile for more of my projects.

    (back to top)

    🙏 Acknowledgments

    (back to top)

    📝 License

    This project is MIT licensed.

    (back to top)

    **

    appointments_app's People

    Contributors

    mohamedsabry0 avatar mohammadyaser avatar erickma1 avatar

    Watchers

     avatar

    appointments_app's Issues

    [0.5Pts][Rails] Implement consultation model

    • Implement consultation model.

    • Add necessary validations and make sure relationships are correct(they should be generated while creating the database table).

    • [Optional] Add unit tests.

    [2Pts][React] Responsive design.

    • You should be able to use Bootstrap classes.
    • Make sure there are no problems with both large and small screens.
    • Fix design/layout problems if any.

    [2Pts][React] Reservations Page

    • When the user clicks the “My reservations” link in the navigation panel they can see a list of their reservations (with information about item name, date and city).

    Potential requirements:

    • Reservation index endpoint.

    [0.5Pts][Rails] Implement Engineer model

    • Implement engineer model.

    • Add necessary validations and make sure relationships are correct(they should be generated while creating the database table).

    • [Optional] Add unit tests.

    [2.5Pts][Optional] Available dates feature.

    • Implement a model method in the engineer model that returns non-reserved dates.

    • Validate date availability(uniqueness) before saving the consultation record.

    • Show available dates on the details page.

    • Show only available dates in the date/calendar input selection (reserved dates should be disabled).

    • Might need to use this component.

    [Optional] Refactoring and Improvements Log

    • You can comment on this, any implementations or refactorings that could benefit the project but wasn't mentioned in other tasks.
    • This is to be used as a log for any unexpected problems or changes required.

    [1.5Pts][React] Add engineer form.

    • When the user clicks the “Add item” link in the navigation panel they can see a form for adding a new item.
    • Implement the form with fields for each property.
    • Style according to the design.

    [2Pts][React] Reserve a consultation [Form]

    • To reserve an appointment, the user has to select a date and city (username and selected item are autofilled).
    • Use the design based on the "Book a vespa test-ride" and add all necessary inputs.
    • The user can also access the “Reserve” page from the navigation panel. In that case, only username is autofilled.

    Potential requirements:

    • [post request] reserve endpoint.
    • Details page.
    • Navigation panel.

    [2Pts] Discuss theme, and database specs

    • Select a theme for the website - is it going to be a website for booking doctor appointments, booking online classes, or something else?
    • Discuss table names, and required properties for each one based on provided requirements.

    [1.5Pts][React] Login page

    • The user logs in to the website, only by typing the username.
    • Style according to the given design.
      Potential requirements:
    • Users table and endpoint(route and controller).

    [1.5Pts][React] Navigation panel structure

    In the navigation panel, the user can see links to:

    • Engineers.
    • "Reserve" form.
    • "My Reservations".
    • "Add Engineer" (the link is visible to everybody).
    • "Delete Engineer" (the link is visible to everybody).

    Style according to the given design.

    [2.5Pts][React] Engineer Details Page

    • When the user selects a specific item, they can see the details page with its full description (skip the “Rotate image” button).
    • In the details page, the user can click the “Reserve” button (in the design you can see the “Configure” button - please replace it with the “Reserve” button).

    [0.5Pts][Rails] Implement user model

    • Implement user model.

    • Add necessary validations and make sure relationships are correct(they should be generated while creating the database table).

    • [Optional] Add unit tests.

    [1Pt][Rails] Implement Endpoints

    • Create routes and controllers for each view and action in react.
    • Design data sent by rails through get endpoints to send only required data.

    Potentially required before:

    • Any react pages or action buttons.

    [1Pt][React] Delete Engineer

    • When the user clicks the “Delete Engineer” link in the navigation panel they can see a list of all engineers with name and “Delete” button.
    • When the user clicks the “Delete” button, the selected engineer is marked as removed and does not show on the main list anymore.

    Potential requirements:

    • Delete endpoint.

    [2.5Pts] [React] Main page

    • the user can see a list of Engineers.
    • styling according to the design.
    this list will include, for each one, a name, a small description, and an image.
    

    Potential requirements:

    • Engineers table and endpoint(route and controller).

    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.