nusmodifications / nusmods

🏫 Official course planning platform for National University of Singapore.
https://nusmods.com
MIT License
578 stars 315 forks source link

Welcome Orbital! #388

Closed ngzhian closed 7 years ago

ngzhian commented 7 years ago

Hi! Thanks for considering NUSMods for your Orbital project ❤️ . A quick disclaimer ⚠️ before you choose to embark on this project:

NUSMods is a completely volunteer-driven project. For this and other reasons, we try to keep a high quality of code ✨ , and expect contributors to be independent 💪 . Therefore, we will be strict with code quality, and if a project does not add value to NUSMods, we will not take it up 🚫 . We are also resource-constrained and cannot mentor every project that is suggested. However, you can still choose to work on NUSMods-related stuff because it's fun 😎 .

Having said that, the team is extremely friendly 👼 and will try to guide you to enhance your learning 🎓.

At this point, many of you have approached us with great ideas 💡 . Before getting down into code, we would like to you to think more about your ideas. Therefore, we ask that every team draft up a proposal 📝 . At the same time, this will allow the NUSMods team to assess the suitability of your project. Your proposal should, minimally, include these elements:

  1. Description of project/feature, this should include a problem statement, user story etc, and most importantly describe (in as much detail as you like) how your idea will work 💡

  2. Estimate of timeline (weekly) 📆 , stating what you expect to be doing that week, and what you would like to complete by then (because we want you to have something to show at the end of orbital 🚀

  3. Implementation plan, how do you want to complete this project 🌱 , what sort of technology you intend to use, and special libraries/databases etc

Where should this proposal be? Create a GitHub :octocat: issue with your idea as the issue title, the content of the proposal in the body of that issue, and tag the issue with the orbital label. (This is a ploy to get you familiar with GitHub.)

We look forward to reading about your ideas! Have a good liftoff :)

If you are itching to code, start by getting a working version of NUSMods on your computer by following the instructions at our v3 page. Then you can try to familiarise yourself with our stack by learning some HTML/CSS, JavaScript, React/Redux, Git, or try a more comprehensive tutorial. And finally if you feel ready, check out issues that are tagged v3 and good for newcomers. Please note that we are doing all development on v3, which is a folder in the repo!

Getting your Feet Wet

There is information regarding the proposal 📝 , and tutorials you can look through. Once you feel confident digging into the code base you may continue reading 📖 :)

To get comfortable around the codebase we suggest you do this (either by yourself or in your pairs):

Note that these are exercises meant to help you get familiar with the code base and will not necessary be merged!

Setting Expectations

I've mentioned this before, and I think it bears repeating that the NUSMods project has high standards 💯 . If you expect your code to be merged into the repository, you must understand the following:

  1. We will review your pull requests and it may require many, many rounds to ensure that the code is of high enough quality and done correctly before we merge
  2. You might have to rewrite what you do (this probably won't happen if you ask questions early and get approval regarding your approach, but if it does, we will request you do so)
  3. You have to work independently, we cannot handhold you to learn the stack, you have to learn it on your own, what we can do is send you pointers on where to learn

Please remember, you are free to do some NUSMods related project at your own time (without the expectations that your code will be merged). The NUSMods API is open for your consumption, so if you wish to do, for example, some sort of module visualisation project using the API, you may do so in your own project. (And in the future you can slowly work towards merging that project into nusmods if you wish to)

Good luck! As always, reach out to us on Telegram if you have any questions ❓

P.S. It will be great if you document your progress as you work through these tasks (and your orbital project), this will make your progress a bit slower (in terms of speed), but will help learning and retention, and probably be useful for newcomers in the future too! If you do write a blog post or anything, share them in the chat, or as a comment to this issue!

yangshun commented 7 years ago

Please star this repo too! ⭐️