Chan Kim


FutforAll

Final Year Individual Project futforall screenshots

Project Overview

I developed a web application to help amateur football players find and join local matches as my final year individual project at Royal Holloway, University of London. The app features match creation, user authentication, and more advanced functions like real-time notifications.

Key Features

  • User Authentication: Sign-up, log-in, and profile pages.
  • Match Management: Create and join matches with user-friendly interfaces.
  • Notifications: Receive reminders and updates.

Technologies

  • Backend: Django (Python)
  • Frontend: Bootstrap, CSS, HTML
  • Database: SQLite

Key Learnings and Challenges

  1. 1. Self-Learning and Adaptability:
    Despite starting with minimal knowledge and no prior experience, I learned and implemented everything from scratch within 3-4 months. This experience demonstrated my ability to self-teach and adapt to new challenges quickly.

  2. 2. Full-Cycle Development:
    I was responsible for every aspect of the website, from initial design and structure to domain setup and server hosting. This holistic approach gave me a comprehensive understanding of web development.

  3. 3. Maintenance and Communication:
    Post-launch, I maintained the website, which involved regular updates and improvements based on feedback. Communicating with the marketing manager, who had little technical knowledge, taught me how to explain complex concepts in simple, non-technical terms.

  4. 4. Major Renewal:
    After three years, I conducted a major renewal of the website’s design, applying more modern styles and ensuring responsiveness across all devices. This project highlighted my ability to stay updated with the latest web design trends and technologies.

Development Methodology

  • Agile Approach:: Iterative development with continuous feedback. Regular reviews and adjustments based on progress and feedback.
  • MVC Architecture:: Separation of data (Model), user interface (View), and control logic (Controller).

Challenges and Solutions

  • Choosing the Right Framework: Compared Django, Express.js, Ruby on Rails, and CakePHP. Django was chosen for its robust features and ease of use.
  • Handling Dynamic Content: Django's templating engine made it straightforward to manage dynamic content within HTML templates.
  • Managing Content: Utilized Django’s admin panel for CRUD operations, saving significant time in development and testing.