Skip to content

Commit c03468a

Browse files
committed
feat: ship it
1 parent d4cabc5 commit c03468a

10 files changed

+195
-23
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,6 @@ dist
138138
/playwright-report/
139139
/blob-report/
140140
/playwright/.cache/
141+
142+
# task file
143+
.todo

CONTRIBUTING.md

+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# Noodle's contributing guidelines
2+
3+
Thank you for your interest in contributing to our project! Any contribution is highly appreciated and will be reflected on our project ✨
4+
5+
First things first, make sure you read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable.
6+
7+
In this guide, you will get an overview of the project structure and setup, as well as the workflow from opening an issue, creating a PR, reviewing, and merging the PR.
8+
9+
## Table of contents
10+
11+
- [Noodle's contributing guidelines](#noodles-contributing-guidelines)
12+
- [Table of contents](#table-of-contents)
13+
- [New contributor guide](#new-contributor-guide)
14+
- [Getting your foot in](#getting-your-foot-in)
15+
- [Some simple rules](#some-simple-rules)
16+
- [The tech stack](#the-tech-stack)
17+
- [Getting stuff running](#getting-stuff-running)
18+
- [Cloning the repo](#cloning-the-repo)
19+
- [Bun](#bun)
20+
- [Installing dependencies](#installing-dependencies)
21+
- [Environment Variables](#environment-variables)
22+
- [Running stuff](#running-stuff)
23+
- [Closing notes](#closing-notes)
24+
25+
## New contributor guide
26+
27+
Here are some resources to help you get started with open source contributions:
28+
29+
- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
30+
- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
31+
- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
32+
- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
33+
34+
## Getting your foot in
35+
36+
Our preferred way of providing the opportunity for people to contribute to Noodle is through a process that starts with creating a new issue, the summary of the workflow that you can expect and should adhere to is the following:
37+
38+
- You see an area of improvement in the code base, this could be a fix, feature, refactoring...etc
39+
- Create an [issue](https://github.com/noodle-run/noodle/issues) on our Github repository.
40+
- Wait until a team member discusses the issue with you, and if both parties are in agreement, you can start working on the issue.
41+
- Once work has started, you can create a draft pull request and remember to link your pull request with the issue.
42+
- Once the work is complete, change the status of the pull request to ready for review.
43+
- We will review the pull request and if all is good, congratulations! 🥳 you are now a Noodle contributor!
44+
- If not, we will explain the changes that need to be made for the pull request to be merged or why it can't be merged.
45+
46+
If you would like to be more involved in the development of Noodle, we would like to invite you to our [Discord Server](https://discord.gg/SERySfj8Eg) where we can have a chat together and get you involved in the project!
47+
48+
### Some simple rules
49+
50+
- Don't work on an issue that is already being worked on by someone else.
51+
- Don't work on something without getting a team member's approval, this is to not waste your time by making you work on something that won't be merged.
52+
- Don't demand for your pull request to be approved and merged.
53+
- Be nice to everyone involved, we are aiming to create a positive community around collaborating and contributing towards Noodle's development.
54+
55+
## The tech stack
56+
57+
The Runtime:
58+
59+
- [Bun](https://bun.sh/)
60+
61+
The Tech Stack:
62+
63+
- [Next.js App Router](https://nextjs.org/)
64+
- [TailwindCSS](https://tailwindcss.com/)
65+
- [tRPC](https://trpc.io)
66+
- [Drizzle ORM](https://orm.drizzle.team/)
67+
- [ShadCN UI](https://ui.shadcn.com)
68+
- [NeonDB](https://neon.tech)
69+
- [Clerk Auth](https://clerk.dev/)
70+
- [Upstash](https://upstash.com)
71+
- [Sentry](https://sentry.io)
72+
- [Resend](https://resend.com)
73+
74+
Development stuff:
75+
76+
- [ESLint](https://eslint.org/)
77+
- [Prettier](https://prettier.io)
78+
79+
There are a lot of other technologies being used in this project, however these are the most important and influential bits of it.
80+
81+
## Getting stuff running
82+
83+
### Cloning the repo
84+
85+
To clone the repo, you firstly need to [fork](https://github.com/noodle-run/noodle/fork) it, and then clone your copy of noodle locally.
86+
87+
```bash
88+
git clone https://github.com/<your-gh-username>/noodle.git
89+
```
90+
91+
### Bun
92+
93+
Bun is used as the package manager of Noodle, with Bun, you don't need to have NodeJS installed at all on your system to be able to run Noodle. The only tool you need to install dependencies & run Noodle is Bun!
94+
95+
To install bun, head over to [their website](https://bun.sh/) which will tell you how to get it installed on your system.
96+
97+
To check that you have Bun installed, simply run the following command:
98+
99+
```bash
100+
bun --version
101+
```
102+
103+
If this commands outputs a version number, you're all good to go.
104+
105+
### Installing dependencies
106+
107+
With bun installed on your machine, the next step would be to install the dependencies that Noodle relies upon to work, to do this, run the following command:
108+
109+
```bash
110+
bun install
111+
```
112+
113+
### Environment Variables
114+
115+
Now that Bun & dependencies has been installed, it's time to configure your environment variables so that the project works as expected:
116+
117+
1. Duplicate the `.env.example` file as just `.env`
118+
2. Populate the values with your own, you will need to sign up to some services in the process.
119+
120+
You can checkout which variables are needed and which are optional in the `src/env.ts` file.
121+
122+
### Running stuff
123+
124+
```bash
125+
# Run the project's dev server
126+
bun dev
127+
128+
# Run e2e tests
129+
bun playwright test
130+
131+
# Build the project
132+
bun run build
133+
134+
# Run the built project in production mode
135+
bun start
136+
137+
# Run the typecheck script
138+
bun typecheck
139+
140+
# Lint using ESLint
141+
bun lint
142+
143+
# Format using Prettier
144+
bun format
145+
```
146+
147+
## Closing notes
148+
149+
Again, thank you so much for your interest in contributing to Noodle, we really appreciate it, and if there is anything we can do to help your journey, make sure to join our [Discord Server](https://discord.gg/SERySfj8Eg).

README.md

+33-20
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
1-
# Noodle
2-
3-
> Rethinking Student Productivity
4-
5-
## Todo for `next` branch to be merged into `main`
6-
7-
- [x] Landing page.
8-
- [x] Early access page.
9-
- [x] Terms and conditions page.
10-
- [x] Privacy policy page.
11-
- [x] Blog page.
12-
- [x] Write a blog post about Noodle's resurrection.
13-
- [x] Responsiveness.
14-
- [ ] README.md.
15-
- [ ] CONTRIBUTING.md.
16-
- [ ] Posthog.
17-
- [x] Sentry.
18-
- [ ] Update GitHub repo about & tags.
19-
- [ ] Update privacy, terms and blog post dates.
20-
- [x] 404 page
1+
<div align="center">
2+
<img src="https://github.com/noodle-run/noodle/blob/main/public/logo.svg?raw=true" alt="Noodle logo" width="75">
3+
<h1>Noodle <br> Rethinking Student Productivity</h1>
4+
<br>
5+
</div>
6+
7+
> **Warning**
8+
> This is a work-in-progress and not the finished product.
9+
>
10+
> Noodle is still in active development towards a minimal viable product (MVP).
11+
>
12+
> Follow me on twitter [@ixahmedxii](https://twitter.com/ixahmedxii) for updates.
13+
14+
![Noodle Preview](https://github.com/noodle-run/noodle/blob/main/public/preview.png?raw=true)
15+
16+
<p align="center" style="color:dodgerblue;"><strong>⚠️ This is a UI design mockup of what the platform will look like, it is not the current state of the project.</strong></p>
17+
18+
## Purpose
19+
20+
Noodle as an idea came from the struggles that I faced during my university years. I was using multiple apps to try and stay on track with my studies, and I thought to myself, why is there no singular app that can do everything a student needs to stay on track with their studies? Like a GitHub but for students.
21+
22+
## Star History
23+
24+
[![Star History Chart](https://api.star-history.com/svg?repos=noodle-run/noodle#gh-light-mode-only)](https://star-history.com/#noodle-run/noodle#gh-light-mode-only)
25+
[![Star History Chart](https://api.star-history.com/svg?repos=noodle-run/noodle&theme=dark#gh-dark-mode-only)](https://star-history.com/#noodle-run/noodle#gh-dark-mode-only)
26+
27+
## Contributing
28+
29+
If you would like to contribute to Noodle, please read the [CONTRIBUTING.md](./CONTRIBUTING.md) file to get started.
30+
31+
## License
32+
33+
Noodle is open source and available under the [AGPL-3.0-or-later](./LICENSE) license.

bun.lockb

1.03 KB
Binary file not shown.

cspell.config.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ words:
2525
- hookform
2626
- ianvs
2727
- ixahmedxi
28+
- ixahmedxii
2829
- jiti
2930
- lockb
3031
- lucide

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
"@trpc/react-query": "next",
7373
"@trpc/server": "next",
7474
"@upstash/redis": "^1.31.3",
75+
"@vercel/analytics": "^1.3.1",
76+
"@vercel/speed-insights": "^1.0.11",
7577
"class-variance-authority": "^0.7.0",
7678
"clsx": "^2.1.1",
7779
"drizzle-orm": "^0.31.2",

src/app/layout.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import './globals.css';
88
import { ThemeProvider } from 'next-themes';
99

1010
import type { PropsWithChildren } from 'react';
11+
import { Analytics } from '@vercel/analytics/react';
12+
import { SpeedInsights } from '@vercel/speed-insights/next';
1113

1214
import { constructMetadata } from '@/lib/utils';
1315
import { Toaster } from '@/primitives/sonner';
@@ -32,6 +34,8 @@ export default function RootLayout({ children }: PropsWithChildren) {
3234
<ThemeProvider attribute="class" disableTransitionOnChange>
3335
{children}
3436
<Toaster />
37+
<Analytics />
38+
<SpeedInsights />
3539
</ThemeProvider>
3640
</body>
3741
</html>

src/content/blog/noodle-resurgence.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Noodle is back to life!
3-
publishedAt: Jun 7th, 2024
3+
publishedAt: Jun 8th, 2024
44
summary: After a brief period of absence, Noodle is back again in the works. Learn more about what we have been up to, the story until now and what's next in the future of Noodle!
55
image: /_static/blog/noodle-resurrection.jpg
66
---

src/content/legal/privacy.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Privacy Policy
3-
effectiveDate: Jun 6th, 2024
3+
effectiveDate: Jun 8th, 2024
44
---
55

66
## 1. Introduction

src/content/legal/tos.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Terms of Service
3-
effectiveDate: Jun 6th, 2024
3+
effectiveDate: Jun 8th, 2024
44
---
55

66
## 1. Introduction

0 commit comments

Comments
 (0)