Capstone Project Hero

Scoutbase

Senior Capstone Project

Introduction to Scoutbase

Scoutbase is a mobile and web-based platform designed to connect high school baseball players with college coaches and scouts. The problem we aimed to solve was the inefficiency in the recruitment process for high school athletes, making it difficult for them to showcase their talents to potential coaches and scouts.

Technologies Used

The project was built using a Django REST API for the backend and a React Native front end for mobile applications. I chose Django to familiarize myself with the Python language, as expanding my skillsets in Python is a goal of mine. I selected React Native because of my familiarity with the JavaScript language and the framework's established presence in the industry. Additionally, industry best practices such as RESTful API design and responsive design principles were implemented.

The application is not deployed in the cloud; however, it utilizes a cloud-based MySQL database hosted on Heroku. This decision was made to minimize costs, as there are no immediate plans to deploy the application to the app store. DevOps principles were applied through effective source control management using GitHub, facilitating collaboration and version tracking throughout the development process.

During this project, I learned new technologies such as Django, React Native, and Expo which were essential for building the application.

Features and Technical Approach

Key features of Scoutbase include athlete profile creation, video uploads, statistics showcasing, and a search functionality for coaches and scouts to find players based on specific criteria.

The technical approach involved creating a RESTful API to handle data transactions between the frontend and backend, ensuring a smooth user experience. Various design diagrams, including ER diagrams and class diagrams, were created to support the technical aspects of the project.

Requirements

Functional Requirements:

  • Users must be able to register, log in, and authenticate using secure credentials.
  • Athletes can create and edit personal profiles including stats, highlight videos, and physical attributes.
  • Coaches and scouts can search for athletes using filters such as position, height, or school.
  • The system must allow users to be assigned roles (athlete, coach, or scout) after registration.
  • Coaches must be able to list their team needs and search for potential recruits.
  • All user data is retrieved and updated via RESTful API endpoints.

Non-Functional Requirements:

  • The application must be accessible via mobile devices and optimized for performance using React Native.
  • The back-end must provide secure, scalable APIs built with Django REST Framework.
  • All communication between front-end and back-end must be protected with JWT authentication.
  • The system must provide consistent performance with a fast response time across devices.
  • Data integrity and validation are enforced at the API level to prevent faulty or malicious data entry.

AI Integration

Ethical Use: AI tools were used responsibly to support development, not replace original work — all logic, architecture, and content were developer-led.

Academic Support: Leveraged ChatGPT for error clarification and design guidance while ensuring full understanding of the material.

Productivity Boost: Used Cursor IDE (GPT 4.0) to improve naming conventions, clear and descriptive comments, and assist in writing unit tests — saving time for core feature development.

Idea Validation: Brainstormed feature implementations and evaluated architectural decisions using AI as a second opinion, not a final authority.

Challenges and Risk Management

During the development of Scoutbase, I faced several significant challenges, particularly in setting up the initial projects in Django and React Native. To overcome these hurdles, I leveraged a variety of resources, including online courses, documentation, and tutorials. For instance, I utilized YouTube tutorials to gain a clearer understanding of the frameworks, which helped me navigate the complexities of both Django and React Native.

The GeeksforGeeks tutorial on Django REST API was particularly helpful for implementing CRUD operations effectively. Additionally, I found the Expo documentation invaluable for getting started with React Native, which guided me through the process of building the front end of the application. I also consulted the official Django documentation for best practices and troubleshooting tips, which proved essential in refining my approach to backend development.

To ensure a smooth development process, I proactively identified potential issues early in the development cycle. By anticipating challenges, I was able to implement solutions before they escalated. The following resources were instrumental in assisting my development process:

I leveraged the following courses, youtube videos, articles, and documentation sources to referance and assist my development process:


Outstanding Issues

Currently, there are no outstanding issues.

Code Repositories

Implementation Details

Prerequisites:

If you are using a Mac:
  • Install XCode, run iPhone simulator at an iOS above 16.
If you are using an Android:
  • Install Android Emulator, run Google Pixel 9.

To run the app, you first need to run the back-end:

  1. Clone the back-end repository from GitHub. (Linked above)
  2. Import the project into your desired IDE (VSCode recommended).
  3. Create and activate a virtual environment using python -m venv env and source env/bin/activate (or env\Scripts\activate on Windows).
  4. Install the required dependencies using pip install -r requirements.txt
  5. Start the development server using python manage.py runserver

To run the front-end mobile app:

  1. Clone the front-end repository from GitHub. (Linked above)
  2. Open the project folder in your desired IDE (VSCode recommended).
  3. Ensure you have Node.js and Expo CLI installed globally. You can install Expo CLI using npm install -g expo-cli.
  4. Run npm install to install all dependencies.
  5. Start the development server using npx expo start.
  6. Use an Android/iOS emulator or scan the QR code with the Expo Go app on your device to run the app.

Project Documentation

Project Proposal Document

Comprehensive overview of the Scoutbase application, including objectives, scope, timeline, and technical architecture.

View Document

Project Design Document

Comprehensive design document for the Scoutbase project.

View Document

Project Requirements Document

Template outlining the requirements for the Scoutbase project.

View Document

Data Dictionary

Comprehensive data dictionary for the Scoutbase database structure.

View Document

DDL Script

Database Definition Language script for Scoutbase.

View Document

Solution Diagrams

Logical and Physical solution diagrams for the project.

Sitemaps

Detailed sitemaps for the Scoutbase application.

View Document

UML and Component Diagrams

UML and component diagrams for the project architecture.

View Document

Wireframe and UI Diagrams

Wireframes and user interface diagrams for the application.

View Document

Test Cases

Comprehensive test cases documentation for the Scoutbase project.

View Document

Traceability Matrix

Requirements traceability matrix for tracking project deliverables.

View Document