Skip to content

trallas/FINALPROJECT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Issues LinkedIn


Logo

README

An awesome README for Eventio, our Final Project at Ironhack :D !
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Contact
  7. Acknowledgments

About The Project

Product Name Screen Shot

"eventio" is an event booking app that allows users to discover and book various events in the city they live and love, filtering per several criterias like proximity, type of event, number of attendees, etc. The app aims to provide a seamless user experience and facilitate event management for both organizers and attendees.

Its the final project (Project3) from Web Development-Full Time 2023. As you already can imagine, we have spent so many hours trying to create this amazing final project, which includes all technical requirements requested by the Student Portal.

  • Develop a Full-stack application using the MERN stack (MongoDB, Express, React and Node.JS).
  • Using MERN stack.
  • To have a fully functional full-stack application.
  • Using Agile methodologies and participating in Agile rituals, such as daily stand-ups.

So, in conclusion:

  • Have a SPA frontend, built with React, consisting of multiple views and implementing all CRUD actions.
  • Have a REST API backend built with ExpressJS, MongoDB and Mongoose, that our React app will communicate with. Have a REST API backend with routes that perform all CRUD actions for at least one model (excluding the user model).
  • Have 3 database models or more. Having one model for users is the first step. The other two (or more) models should represent the main functionality of our app.
  • Include sign-up, log-in and log-out functionality with encrypted passwords (or social login) and authorization (logged-in users can do additional things).
  • Have two separate repos on GitHub. One repo is for frontend React application and the other is for our backend REST API.
  • Have at least 2 commits per day that we worked on.
  • Have a backend validation and centralized error handling in our REST API.
  • Be deployed online, allowing anyone to access and use our app.

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

  • React
  • Express
  • Node.js
  • Tailwind-css
  • Yarn

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • npm
    npm install npm@latest -g

Installation

Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.

  1. Get a free API Key at https://example.com

  2. Clone the repo

    git clone https://github.com/your_username_/Project-Name.git
  3. Install NPM packages

    npm install
  4. Install YARN packages

    yarn install

Setting up Models

Model #01: Event

  • Title
  • Date
  • Hour
  • Location
  • Event Description
  • Max Capacity # of Attendees
  • Total # of Attendees
  • Image "URL"
  • Buyers {type: Schema.Types.ObjectId...ref:"User"}
  • is cancelled
  • owner {type:Schema.Type.ObjectId...ref:"User"}
  • Price

Model #02: User

  • (_id)
  • Created Events {type: Schema.Types.ObjectId...ref:"Events"}
  • Username
  • Email
  • Password
  • isAdmin

Model #03: Event_User_Quant

  • idUser
  • idEvent
  • Quantity

Model #04: Images

  • id_User
  • Title
  • image_URL

Setting up Routes

Front - End

Routes

Route Privacy Renders
/ public HomePage
/signup public SignupPage
/login public LoginPage
/about public ResumePage
/profile private (user) UserProfilePage
/logout private (user) UserProfilePage
/event/:eventId public (user) UserProfilePage
/user/:userId private (user) UserProfilePage
/admin private (user) UserProfilePage
/admin/event/create private (user) UserProfilePage
/admin/:eventId/edit private (user) UserProfilePage
...

Components

  • Navbar
  • OrderCard
  • PrivateRoute

Back - End

GET Routes

Method Endpoint Require Response (200) Action
GET /events Returns the last 10 events created.
GET /profile Displays profile from user.
GET /events:eventID Returns events with the data assigned to the event, with info like buyers, soldout etc.
GET /admin/event/:id Returns the events of the admin by Id.
GET admin/events Returns all the events created by that admin.

Back Routes

Method Endpoint Require Response (200) Action
POST auth/signup const { username, email, password } = req.body json({user: user}) Registers the user in the database and returns the logged in user.
POST auth/login const { email, password } = req.body Logs in a user already registered.
POST auth/logout Logs user out registered.
POST verify Verifies that the user trying to log in is already registered and has a valid account, or that its not registered.
POST user/:eventId unnatend Shows all the events filtered by filters to that particular user.
POST user/:eventId/cancel Cancel the attendance of the user in that event.
POST user/events/create User creates an event.
POST /admin/events/:eventsId/edit Allows admin to edit or modify the event filtered by filters and ID.
POST user/events/:eventId/confirm Shows the events that the user will attend and has confirmed assistance.
POST events/:eventId/confirm Shows the events that have attendancy and have been confirmed.
POST api/upload Route to upload images to Cloudinary.

(back to top)

Roadmap

  • Create Readme.md
  • Create Project Repo
  • Create MongoDB Database
  • Create both Front and Back Routes
  • Create and setup Models
    • Event
    • User
  • Add design

See the full Height Control we used for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated, but please bear in mind that this Project is the result of 2 intensive full time months and there's plenty of margin to improve. So we would appreciate constructive feedback only.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License & Copyright.

Distributed under the Ironhack License. All copyrights and intelectual property belong to the owners of the present Project. The owners may user their legal rights to defend the project at any time.

(back to top)

Contact

Pedro Torres - @kitschest_ - [email protected]

Toni Torredemer - [email protected]

Xavier Trallero @XTG1724 - [email protected]

Project Link: https://github.com/tonitoar/event.io-GENERAL-

(back to top)

Acknowledgments & Recognition

We could have not succeeded without the help of our teachers Mariona Roca and Yabel Rodriguez. Thank you for all your work!

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published