/BikingBuddy

C# Web Module @SoftUni FinalProject

Primary LanguageC#

logo

BikingBuddy Worldwide

Your Ultimate Destination for Cycling Adventures and Connections!

Biking Buddy isn't just a web application; it's your all-in-one companion for organizing, discovering, and creating a universe of biking events. Picture a world where every pedal stroke takes you closer to thrilling routes, exciting challenges, and a community of fellow riders who share your passion.

🚴‍♂️ Explore, Discover, Thrive: Dive into a curated collection of biking events that cater to every rider's heart's desire. Whether you crave scenic trails, heart-pounding off-road escapades, or leisurely urban explorations, Biking Buddy has an event that fits your style.

🌐 Craft Your Ride, Your Way: Unleash your inner event creator and design biking experiences that reflect your imagination. Map out routes that wind through stunning landscapes, challenge participants with varying difficulty levels, and leave everyone with stories to tell.

👥 Connect, Collaborate, Conquer: Forge bonds that last a lifetime by joining existing biking teams or creating your own. Biking Buddy is more than an app; it's a thriving community of riders who support and inspire each other. Team up, conquer challenges, and share unforgettable moments.

🏅 Achievements at Every Turn: Your journey deserves recognition, and Biking Buddy ensures your accomplishments shine. Track your personal bests, elevation gains, and distances covered. Every ride becomes a chapter in your biking story, proudly displayed in your user account.

🎉 Lead Your Cycling Tribe: Elevate your passion by becoming a team manager. Biking Buddy empowers you to captain your own crew, strategize thrilling biking events, and foster a sense of unity that goes beyond the road.

With Biking Buddy, your cycling adventures are amplified. Join us on a ride to remember, where every twist and turn brings you closer to the excitement of biking events and the bonds of a true cycling community. Biking Buddy is not just an app; it's your biking partner, your inspiration, and your window into a world of two-wheeled adventures. Welcome to Biking Buddy - where every ride is an opportunity to discover, connect, and thrive.

📔 Table of Contents


About the Project

Biking buddy is a platform for hobby cyclists and mountain bike enthusiasts! Discover a vibrant community where you can form teams, organize events, and showcase your biking gear. Connect with fellow riders, share insights, and embark on thrilling adventures together. Elevate your biking experience with us today!


Tech Stack

Server
Database

Features

There is an Administration Area in the project and Common Layer for Authenticated Users.

Custom Authentication Flow
  • Register.
  • Login.
  • Remember me.
  • Send Email for Reset Forgot Password.
  • Reset Password.
Guest
  • Gusts has access to Home Page.
  • Gusts has access to Events Page.
  • Gusts has access to Event Details Page.
  • Gusts has access to Team Page.
Authenticated User
  • Can view and edit his profile information such as Profile Picture, Address, Equipment and etc.
  • Can Join/Leave events.
  • Can Create events.
  • Can Edit or Delete their events.
  • Can upload .GPX File with track info for their events.
  • Can Cad add Gallery Photos.
  • Can comment on events page.
  • Can can see other participants in events where they also participate.
  • TODO: CANNOT join already ended events.
  • TODO: CANNOT leave already ended events.
Team Manager
    When user create new team he became Team Manager of this team!
  • Can see all his Members requests and review their memberships
  • Can see all his Team Members
  • Can edit team info.
  • Can delete his team.
  • Can Add and remove members.
Administrator
  • Can use Authenticated User functionality.
  • Can use Team Manager functionality.
  • Can see all active users in the app.
  • Can see all deleted Admins in the app.
  • Can see all active Admins in the app.
  • Can make other users Admins a role.
  • Can see all activeteams in the app with their information about Members,Requests, Team Managers and etc.
  • Can see all deleted teams in the app with their information about Members,Requests, Team Managers and etc.
  • Can see all activeEvents in the app with their details.
  • Can see all deletedEvents in the app with their details.

Screenshots

Database

BikeBuddyDb

Authentication flow

Register Page

localhost_7194_Register

Login Page

localhost_7194_Login

Home Page

localhost_7194_

User Profile Page

localhost_7194_User_MyProfile (1)

Edit User Page

localhost_7194_User_Edit

All Events Page

with tabs for Track Info/Comments/Participants

localhost_7194_Event_Details_eventId=5BA2C5B5-1DF9-4252-8F38-59AEA44C18DB (3)

Modal

For meeting point detailed map

image

Add/Edit Event Page

With colapsable elements, Leaflet map, autofill track info with JS

localhost_7194_Event_Edit_eventId=5BA2C5B5-1DF9-4252-8F38-59AEA44C18DB (1)

Team details Page

localhost_7194_Team_Details_teamId=58F28049-75A5-48E7-818C-2723AEABFA68

Admin Index Page

localhost_7194_Administration (2)

Admin Events Page

localhost_7194_Administration_Events_all

Admin Event Preview Modal Page

localhost_7194_Administration_Event_Preview_modal

Admin Teams Page

localhost_7194_Administration_Team_All_TeamsPerPage=15 SearchTerm= Sorting=0 IsDeleted=0 (1)

Admin Users/Admins Page

localhost_7194_Administration_users_All


Seeding

You can review the seeded data here.

Seeded Data

Common Entities
  • Coutries
  • Towns
  • Activity Types

Unit Tests

The technologies that were used for the unit testing are:

You can check all unit tests by going to Tests.


Run Locally

Very simple and easy

  1. Download the project ZIP folder.
  2. Replace the data with your own. (SqlServer connection)
  3. Ensure that you entered correct data.
  4. Start the project. (The app will automatically apply all migrations and seed data)

Getting started:

Use App to register user with this email who will became first Administrator email: admin@bbuddy.com


TODO List:

  • Move default user/event/team photo to wwwroot and make migrations for the default values with new path.
  • Don't allow user to Join/Leave past events.
  • When Delete user to delete all his events and teams.
  • User can participate in only one club.
  • Delete users are not allowed to login.
  • Add caching to all events and teams.
  • Add Location on map .
  • Add info container on All Teams/Events pages.
  • Events can be free and paid.
  • Event organizer to add .gpx file for the event, if want.
  • Participants to be able to download .gpx file of the event if there is such.
  • Visualize .gpx track on the event details page.
  • Show forecast for the event location in details.

🤝 Contact

Emilian Kalinov - LinkedIn

Project Link: BikingBuddy


💎 Acknowledgements

My useful resources and libraries that I used to create this readme file.