From 7df39a4e1a624a4a1664a70486255314a9055438 Mon Sep 17 00:00:00 2001 From: "Mr. Algorithm" <11aravipratapsingh@gmail.com> Date: Sat, 4 Oct 2025 21:00:53 +0530 Subject: [PATCH 1/4] added terms & documentation for all --- app/(root)/api-docs/page.tsx | 76 ++++++++++++++ app/(root)/help/page.tsx | 122 ++++++++++++++++++++++ app/(root)/layout.tsx | 3 + app/(root)/terms/page.tsx | 197 +++++++++++++++++++++++++++++++++++ app/favicon.ico | Bin 15406 -> 181736 bytes components/Footer.tsx | 101 ++++++++++++++++++ next.config.ts | 1 + 7 files changed, 500 insertions(+) create mode 100644 app/(root)/api-docs/page.tsx create mode 100644 app/(root)/help/page.tsx create mode 100644 app/(root)/terms/page.tsx create mode 100644 components/Footer.tsx diff --git a/app/(root)/api-docs/page.tsx b/app/(root)/api-docs/page.tsx new file mode 100644 index 0000000..4e90ed9 --- /dev/null +++ b/app/(root)/api-docs/page.tsx @@ -0,0 +1,76 @@ +import { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'API Documentation - OpenStock', + description: 'Free and open API documentation for OpenStock platform - no paywalls, no barriers', +}; + +export default function ApiDocsPage() { + return ( +
+
+

Free & Open API Documentation

+

+ Complete guide to integrating with the OpenStock API - completely free, forever +

+
+

+ 💡 Open Dev Society Promise: This API will always be free. No hidden costs, no usage limits for personal projects, no barriers to knowledge. +

+
+
+ +
+ {/* Philosophy */} +
+

🌍 Our API Philosophy

+

+ We believe market data should be accessible to everyone - students building their first portfolio tracker, + developers creating tools for their community, and anyone who wants to learn about finance without barriers. +

+
    +
  • Always Free: Core features remain free forever
  • +
  • No Gatekeeping: Simple authentication, clear documentation
  • +
  • Community First: Built for learners, students, and builders
  • +
  • Open Source: API examples and SDKs are open source
  • +
+
+ + {/* Community Support */} +
+

🤝 Community & Support

+
+
+

🎓 For Students

+

+ Building a project for class? Email us at opendevsociety@cc.cc for unlimited access and mentorship. +

+
+
+

💻 For Developers

+

+ Join our Discord community for code examples, troubleshooting, and collaboration opportunities. +

+
+
+
+ + {/* Open Source Commitment */} +
+

🔓 Open Source Promise

+

+ This API, its documentation, and all example code are open source. + Found a bug? Want a feature? Submit a PR or issue on GitHub. +

+
+ + Contact us + + +
+
+
+
+ ); +} diff --git a/app/(root)/help/page.tsx b/app/(root)/help/page.tsx new file mode 100644 index 0000000..ebdea83 --- /dev/null +++ b/app/(root)/help/page.tsx @@ -0,0 +1,122 @@ +import { Metadata } from 'next'; +// Removed unused lucide-react imports + +export const metadata: Metadata = { + title: 'Help Center - OpenStock', + description: 'Free help and community support - no barriers, just guidance', +}; + +export default function HelpPage() { + const faqs = [ + { + question: "Is OpenStock really free forever?", + answer: "Yes! We're part of the Open Dev Society, which means we'll never lock knowledge behind paywalls. Core features remain free always. We run on community donations and the belief that financial tools should be accessible to everyone." + }, + { + question: "I'm a student - can I use this for my projects?", + answer: "Absolutely! That's exactly why we built this. Use it for school projects, learning, or building your portfolio. Need help? Our community loves mentoring students. Email student@opendevsociety.org for extra support." + }, + { + question: "How do I add stocks to my favorites?", + answer: "Navigate to any stock page and click the star icon. You can also search using the search bar and add directly from results. Everything is designed to be intuitive - no complex tutorials needed." + }, + { + question: "Can I contribute to OpenStock?", + answer: "We'd love that! OpenStock is open source and community-driven. Check our GitHub for issues marked 'good first issue' or 'help wanted'. Every contribution, no matter how small, makes a difference." + }, + { + question: "What if I find a bug or have a feature request?", + answer: "Please tell us! Submit issues on GitHub, join our Discord, or email opendevsociety@gmail.com. We see every report as a chance to make the platform better for everyone." + } + ]; + + return ( +
+
+

Community Help Center

+

+ Free help, guided by community, powered by the belief that everyone deserves support +

+
+

+ 🤝 Our Promise: Every question matters. Every beginner is welcomed. No exclusion, ever. +

+
+
+ + + {/* Help Philosophy */} +
+
+ +

Learn Together

+

+ Every expert was once a beginner. Our guides are written by the community, for the community. + No jargon, no assumptions about prior knowledge. +

+
+ +
+ +

Community Support

+

+ Real people helping real people. Our Discord community includes students, professionals, + and mentors who genuinely want to help you succeed. +

+
+ +
+ +

Built with Care

+

+ Every feature is designed with accessibility and ease-of-use in mind. + We believe powerful tools should be simple to use. +

+
+
+ + {/* Community FAQs */} +
+

Community Questions

+
+ {faqs.map((faq, index) => ( +
+

{faq.question}

+

{faq.answer}

+
+ ))} +
+
+ + {/* Community Connection */} +
+

Join Our Community

+

+ Don't struggle alone. Our community of builders, learners, and dreamers is here to help. + Because we believe the future belongs to those who build it openly. +

+
+ + Join Discord Community + + + + Email Help Team + +
+

+ ✨ All support is free, always. We're here because we care, not for profit. +

+
+
+ ); +} diff --git a/app/(root)/layout.tsx b/app/(root)/layout.tsx index afffc63..6e6630f 100644 --- a/app/(root)/layout.tsx +++ b/app/(root)/layout.tsx @@ -2,6 +2,7 @@ import Header from "@/components/Header"; import {auth} from "@/lib/better-auth/auth"; import {headers} from "next/headers"; import {redirect} from "next/navigation"; +import Footer from "@/components/Footer"; const Layout = async ({ children }: { children : React.ReactNode }) => { const session = await auth.api.getSession({ headers: await headers() }); @@ -21,6 +22,8 @@ const Layout = async ({ children }: { children : React.ReactNode }) => {
{children}
+ +