items_header

Open projects

Projects available to all portals

Closed

Closed
Agora Connections
Edmonton, Alberta, Canada
Dylan Zingle
Employer
3
Preferred learners
  • Anywhere
  • Academic experience
Categories
Computer science & it Cloud technologies Social media marketing Website development Security (cybersecurity and it security) Databases
Project scope
What is the main goal for this project?

Executive Summary:

  • Agora Tutoring is an online marketplace akin to Kijiji, equipped with a map function similar to Uber, specializing in connecting students with local tutors for in-person educational sessions.


Project Goal:

  • The primary goal of this project is to integrate OAuth-based user authentication with Facebook and Google into the Agora Tutoring platform. By incorporating these widely used authentication methods, the project aims to streamline the login process for users, thereby enhancing user accessibility and improving security measures.


Problem Statement:

  • Currently, users of the Agora Tutoring platform must go through a traditional account creation process that requires them to manually enter personal details to register. This method can be time-consuming and poses a barrier to quick access. Moreover, managing separate usernames and passwords for multiple platforms can discourage potential users due to the inconvenience and increased risk of security breaches.
What tasks will learners need to complete to achieve the project goal?

To successfully achieve the project goal of integrating OAuth-based authentication for Facebook and Google into the Agora Tutoring platform, learners will need to undertake several structured tasks. These activities are designed to cover all aspects of development, from initial setup to final deployment and testing. Here’s a breakdown of the essential tasks:


1.       Research and Planning

  • Understand OAuth 2.0: Research the OAuth 2.0 protocol to understand how it works and why it is secure.
  • Study Existing Systems: Review the current authentication system on Agora Tutoring to determine how best to integrate OAuth.
  • Obtain API Credentials: Register the application with Facebook and Google to obtain necessary client IDs and secrets.


2.       Backend Development

Set Up Authentication Framework:

  •  Install and configure Passport.js in the Express backend.
  •  Set up Passport strategies for Facebook and Google.

Secure Handling of Credentials and Tokens:

  •  Implement secure storage and handling of OAuth tokens and user credentials.
  •  Ensure all data exchanges occur over HTTPS.

Database Schema Modification:

  •  Update the MongoDB schema to store new data elements related to OAuth, such as tokens and user profile information from Facebook and Google.


3.       Frontend Development

UI/UX Design for Login:

  •  Design and implement login buttons or links for Facebook and Google on the existing user interface.
  •  Ensure the design is intuitive and aligns with the platform’s aesthetic.

Implement Client-Side OAuth Flows:

  •  Handle redirection to OAuth services and manage callbacks from Facebook and Google.
  •  Use Apollo to manage data fetching and integration into the frontend.


4.       Integration and Testing

Integrate Frontend and Backend:

  •  Ensure the frontend and backend are seamlessly integrated to handle OAuth logic.
  •  Test the complete flow from user interaction to data storage.

Security Audits and Penetration Testing:

  •  Conduct thorough security audits to identify any potential vulnerabilities.
  •  Test for common security threats in OAuth implementations.


5.       Deployment and Evaluation

Staging Deployment:

  •  Deploy the integration in a staging environment to simulate real-user scenarios.
  •  Monitor performance and troubleshoot any issues that arise.

User Acceptance Testing:

  •  Allow a controlled group of users to test the new login system.
  •  Gather feedback on usability and any encountered issues.

Final Deployment:

  •  Deploy the system to production after making necessary adjustments based on feedback and test results.


6.       Documentation and Reporting

Document the Development Process:

  •  Maintain detailed documentation of the development process, configurations, and setups for future reference and scaling.

Prepare Final Report:

  •  Compile a final report summarizing the research, development process, testing outcomes, and user feedback.
  •  Evaluate the project against the initial goals and objectives.


Conclusion

By completing these activities, learners will not only achieve the project goal but also gain valuable experience in modern web development practices and security protocols. This project will serve as a practical application of their learning, preparing them for future challenges in tech-related fields.


How will you support learners in completing the project?

Staff Time and Mentorship

Dedicated Mentors:

  • Assign experienced mentors from the team

Regular Check-Ins:

  • Schedule regular check-ins and progress meetings to discuss challenges, provide feedback, and keep the project on track. This could be weekly or bi-weekly depending on the project phase.

Availability for Questions:

  • Ensure that mentors available for ad-hoc questions via a dedicated communication channel Google Chat.


Feedback and Continuous Learning

Peer Reviews:

  • Encourage peer review sessions where learners can present their work, receive feedback, and learn from each other’s experiences.

Reflective Learning Sessions:

  • Host end-of-project reflective sessions where learners can discuss what went well, what could be improved, and how the skills they acquired can be applied in future projects.
  • By providing these layers of support and resources, learners will be equipped not only to meet the challenges of the project but also to gain valuable skills and experience that will benefit their future professional development. This comprehensive support structure is designed to foster an environment of learning, collaboration, and achievement.
What skills or technologies will help learners to complete the project?

To be successful in the project of integrating Facebook and Google OAuth authentication into the Agora Tutoring platform, learners will benefit from a range of technical skills and knowledge of specific technologies. Here’s a list of the essential skills and technologies that will play a crucial role in the project:


 Technical Skills


1. Understanding of OAuth 2.0 Protocol:

 Knowledge of how OAuth works, including authorization flows, tokens, and security aspects.


2. Web Development Fundamentals:

 Proficiency in HTML, CSS, and JavaScript, which are foundational for any web development work.


3. Backend Development:

 Experience with Node.js and Express.js, as they form the core backend framework for the Agora Tutoring platform.


4. Database Management:

 Skills in managing and querying MongoDB, including schema design and data integration.


5. API Integration:

 Ability to integrate third-party APIs and manage authentication and data retrieval from services like Facebook and Google.


6. Security Practices:

 Knowledge of web security best practices, particularly relating to authentication and handling sensitive data.


7. Version Control Systems:

 Familiarity with Git for version control to manage code changes and collaboration effectively.


 Technologies


1. Passport.js:

 Understanding of this authentication middleware for Node.js to implement login strategies for Facebook and Google.


2. React and Next.js:

 Skills in React for building the user interface and Next.js for server-side rendering and routing on the frontend.


3. Apollo Client:

 Experience with Apollo for handling GraphQL interactions on the client side, which will be important for fetching and managing data.


4. GraphQL:

 Knowledge of GraphQL for designing and implementing APIs that allow clients to request exactly the data they need.


5. Heroku:

 Experience with deploying applications on Heroku, understanding its dyno-based infrastructure, and handling environment variables and configurations.


6. Secure Environment Handling:

 Skills in managing secure environments, including the use of HTTPS, tokens, and other secure credentials.


7. User Interface Design:

 Ability to design intuitive and effective user interfaces, enhancing the overall user experience.


 Additional Skills


1. Problem-Solving:

 Strong analytical and problem-solving skills to troubleshoot and resolve issues that may arise during the integration.


2. Collaboration and Communication:

 Ability to work effectively in teams, especially in a cross-functional team involving both technical and non-technical stakeholders.


3. Project Management:

 Basic project management skills to help organize, plan, and execute project tasks within designated timelines.


Equipping themselves with these skills and knowledge of the specified technologies will significantly enhance the learners’ ability to execute the project efficiently and effectively. This will not only help in achieving the project goals but also in their personal development as proficient web developers.

Supported causes
Quality education
About the company

Company Overview:
Agora Connections is a contracting and consulting firm that specializes in web development and process automation for small businesses. This branch of Agora leverages cutting-edge technology to enhance business efficiency and promote scalability. Through customized digital solutions, Agora Connections is committed to helping small businesses modernize their operations and increase their market competitiveness.

Services:
Agora Connections offers a wide range of services designed to meet the diverse needs of small businesses:
• Website Development: From basic websites to complex e-commerce platforms, Agora Connections designs and develops tailored web solutions that reflect the client’s brand and meet their business needs.
• Process Automation: Agora Connections implements advanced automation solutions to streamline business operations, reduce manual labor, and improve process efficiency.
• Digital Transformation Consulting: The firm provides expert advice and strategies to guide small businesses through their digital transformation journeys, ensuring that they effectively utilize technology to achieve their business objectives.

Business Model:
Agora Connections operates on a project-based and retainer model, allowing flexibility in how services are offered. Small businesses can engage Agora Connections for specific projects such as website creation or an overarching service agreement that covers continuous process optimization and tech support, aligning with the firm’s focus on fostering long-term partnerships.

Target Market:
Agora Connections primarily targets small businesses across various industries that are looking to enhance their operational efficiency and online presence. The target market includes startups, established small enterprises, and family-owned businesses eager to adopt new technologies to stay competitive.

Strategic Goals:
• Expansion of Services: Agora Connections aims to continuously expand its technology offerings, including integrating emerging technologies.
• Market Penetration: The firm seeks to increase its market share by targeting underserved regions and industries, promoting the benefits of digital transformation.
• Partnership Development: Building strategic partnerships with technology providers and industry specialists to enhance service offerings and provide comprehensive solutions to clients.

Competitive Advantage:
Agora Connections distinguishes itself through:
• Customized Solutions: Tailored digital strategies that are directly aligned with the specific needs of small businesses.
• Expertise and Agility: A team of experts skilled in the latest technologies, capable of adapting solutions quickly to meet changing market demands.
• Focus on ROI: Delivering solutions that not only enhance efficiency but also directly contribute to revenue growth and cost reduction.

By concentrating on these areas, Agora Connections is positioned to help small businesses effectively navigate the complexities of digital adoption and thrive in a technology-driven marketplace.