This project is a trial application showcasing the use of Next.js and related technologies to implement various features and functionality!
- User system with roles: admin, user, and participant
- GitHub OAuth provider for account sign-up and login
- Ability to change user roles
- Admin-only page to upload JSON files to PostgreSQL database using Prisma
- Page for logged-in users to view and download uploaded JSON files
- API routes for admin user list and public JSON data
- Language localization using Next Intl for multiple languages
- Styling using Tailwind CSS with Shadcn UI components
- Light and dark mode support with toggle functionality
- Integration of Redux Toolkit for state management
- Framer Motion for animations
- Next.js 13 App Router
- Prisma with PostgreSQL
- Next Auth for authentication
- Next Intl for internationalization (i18n)
- TypeScript for type-safe code
- Redux Toolkit for state management
- Tailwind CSS with Shadcn UI for styling
- Framer Motion for animations
- Clone this repository:
git clone
- Navigate to the project directory:
cd project-directory
- Install dependencies:
npm install
- Set up environment variables as required (e.g., database configuration, GitHub OAuth credentials).
- Start the development server:
npm run dev
- Open your browser and access the app at
http://localhost:3000
/api/admin
: Returns a list of all users on the system (admin role required)./api/public
: Returns the most recently uploaded JSON data (no authentication required).
The application supports language localization using Next Intl. English and Russian languages are implemented.
The app is styled using Tailwind CSS along with Shadcn UI components. Light and dark mode are available and can be toggled via the UI.
The app is deployed using Vercel's hobby tier. You can access the deployed app at Deployment URL.