Welcome to the Nova Coders official website repository! This is a modern, full-stack web application built to serve the Nova Coders community, offering a rich, interactive user experience with an robust backend infrastructure.
- Project Overview
- Key Features
- Technology Stack
- Project Structure
- Installation & Setup
- Environment Variables
- Running the Application
- API Documentation
- Contributing
- License
Nova Coders is a dynamic, SEO-optimized educational and community platform. It features user authentication, a comprehensive admin dashboard, a certificate generation and verification system, and a suite of interactive UI elements. The platform is designed to manage members, showcase portfolios, and streamline contact inquiries while ensuring a premium, animated user experience.
- Robust Authentication: Secure JWT-based signup, signin, and role-based access control (Admin/User).
- Interactive UI/UX: Powered by Framer Motion, React Spring, and Three.js for 3D elements and micro-animations, along with Lenis for smooth scrolling.
- Admin Dashboard: A centralized hub for managing users, content, member profiles, and tracking platform analytics.
- Certificate System: Automated generation and robust verification system for course and event certificates.
- SEO Optimized: Comprehensive SEO strategy utilizing
react-helmet-asyncfor meta-tag management across pages, with configuredrobots.txtandsitemap.xml. - Member & Contact Management: Streamlined handling of member data and contact form inquiries.
- Framework: React 18 with Vite
- State Management: Redux Toolkit & React Context API
- Styling: Tailwind CSS & PostCSS
- Animations & 3D: Framer Motion, React Spring, Three.js, @react-spring/web
- Routing: React Router v6 & react-router-hash-link
- Utilities: Axios, Lenis (smooth scrolling), Swiper, React Hook Form, Lucide React / React Icons
- SEO: React Helmet Async
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose ODM
- Security: Helmet, bcryptjs (password hashing), jsonwebtoken (JWT), cookie-parser
- Validation: express-validator
nova-coders-website/
βββ backend/ # Express server & API
β βββ src/
β β βββ app.js # Express app configuration
β β βββ controllers/ # Route controllers (authController, etc.)
β β βββ db/ # MongoDB connection setup
β β βββ middlewares/ # Auth, Admin, and Error middlewares
β β βββ models/ # Mongoose schemas (User, Member, Certificate)
β β βββ routes/ # API endpoints definition
β βββ server.js # Server entry point
β βββ package.json
β
βββ frontend/ # React + Vite application
βββ src/
β βββ api/ # Axios configurations and API calls
β βββ assets/ # Images, fonts, and static assets
β βββ components/ # Reusable UI components (SignIn, etc.)
β βββ config/ # App configurations
β βββ context/ # React Context providers (DataProvider)
β βββ hooks/ # Custom React hooks
β βββ pages/ # Main page components (Home, About, Portfolio)
β βββ routes/ # Application routing logic (MainRoutes)
β βββ store/ # Redux store and slices
β βββ index.css # Global Tailwind styles
β βββ main.jsx # React application entry point
βββ public/ # Public assets (robots.txt, sitemap.xml)
βββ vite.config.js # Vite bundler configuration
βββ package.json
- Node.js (v18 or higher recommended)
- npm or yarn
- MongoDB (Local instance or MongoDB Atlas URL)
git clone https://github.com/novacoders-edu/nova.git
cd novacd frontend
npm installcd ../backend
npm installCreate a .env file in the backend/ directory:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/novacoders
NODE_ENV=development
JWT_SECRET=your_super_secret_jwt_keyCreate a .env file in the frontend/ directory:
VITE_API_URL=http://localhost:5000/apiYou will need two terminal windows to run the frontend and backend concurrently.
Terminal 1 - Backend:
cd backend
npm run devServer runs on http://localhost:5000
Terminal 2 - Frontend:
cd frontend
npm run devFrontend runs on http://localhost:5173
To build the frontend for production:
cd frontend
npm run buildThis will generate a dist/ folder containing the optimized static assets.
POST /api/auth/signup- Register a new userPOST /api/auth/signin- Authenticate a user and receive a tokenPOST /api/auth/logout- Invalidate user session
GET /api/members- Retrieve member directoryPOST /api/members- Add a new member (Admin only)GET /api/members/:id- Get specific member details
GET /api/certificates- List all certificatesPOST /api/certificates- Generate a new certificate (Admin only)GET /api/certificates/verify/:id- Public route to verify certificate authenticity
POST /api/contacts- Submit a new contact inquiryGET /api/contacts- Retrieve all inquiries (Admin only)
We welcome contributions to Nova Coders! Please follow these steps:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request for review.
This project is proprietary and confidential. All rights reserved by Nova Coders.