Concourse is a web-based collaborative course communication platform designed to bring the best online interaction experience for students and instructors.

#PennWinterHackathon2020

Concourse is live!

Inspiration

The idea for Concourse comes from some complaints from my classmates and I about Piazza. I was learning the Spring framework after 591, so I thought this hackathon would be a great opportunity to apply what I learned. In this project, I redesign and make my own version of Piazza.

What it does

Concourse is a web-based collaborative course communication platform designed to bring the best online interaction experience for students and instructors.

Concourse aspires to make online course communication between students and instructors a pleasant experience. We want to be the Slack for course communication, a platform that students and instructors alike would love to use. Our ultimate goal is to create an environment where students can get all their questions answered effectively.

How I built it

As for design, I began with the basic and essential features of Piazza. Then, I incorporated some features that can enhance user experience by learning from popular communities and forums, such as Stack Overflow and Reddit.

The backend is powered with Spring deployed on AWS Elastic Beanstalk. The website is currently hosted on AWS S3 and distributed on AWS CloudFront.

The front-end is built with Angular. I chose Angular as it uses Typescript and dependency injection, which is similar to Java and Spring architecture.

Challenges I ran into

  • I'm new to web development and there are so many new things to learn.
  • Making things look good on both desktop and mobile browsers was time consuming
  • Rolling out my own API and securing its endpoints was challenging. As it currently stands, the API is inefficient and database is far from optimized. I tried to follow the best practices, but I still feel I left a lot of technical debt for this project.
  • Creating user authentication and authorization.
  • Deploying the project into the cloud and configuring the project for the first time was tricky.

Accomplishments that I'm proud of

  • I know nothing about Angular and Typescript prior to this project. Now, I have a working Piazza clone! The website has many features of modern forum. This is a great stepping stone for a more complex project.
  • Before this hackathon, I've been mostly consuming API. Now for the first time, I designed and the API producer.
  • I implemented an authentication system. Learning what happens behind the scene is an eye-opener.

What I learned

  • The best way to learn something is to build something.

What's next for Concourse

As of submission deadline, the project is far from production-ready. I barely write tests and the backend is due for major refactor and redesign. I have to work on the client and server-side validation, and user interaction. A more challenging goal is to make the website scaleable and more secure.



Gallery




alt text



alt text


Share this project:
×

Updates